You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/11/27 02:37:19 UTC
[iotdb] branch master updated: catch NullPointerException and log
error (#2129)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new abc6999 catch NullPointerException and log error (#2129)
abc6999 is described below
commit abc6999047f04ba11bd3040aed97fa7dfe71e614
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Fri Nov 27 10:37:00 2020 +0800
catch NullPointerException and log error (#2129)
---
.../org/apache/iotdb/db/service/TSServiceImpl.java | 147 +++++++++++++++------
1 file changed, 108 insertions(+), 39 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index ce8e397..9145e51 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -295,7 +295,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
// release as many as resources as possible, so do not break as soon as one exception is
// raised
exceptions.add(e);
- logger.error("Error in closeSession : ", e);
+ logger.warn("Error in closeSession : ", e);
}
}
}
@@ -342,9 +342,12 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
releaseQueryResource(req.queryId);
}
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("Error in closeOperation : ", e);
return RpcUtils.getStatus(TSStatusCode.CLOSE_OPERATION_ERROR, "Error in closeOperation");
+ } catch (Exception e) {
+ logger.warn("Error in closeOperation : ", e);
+ return RpcUtils.getStatus(TSStatusCode.CLOSE_OPERATION_ERROR, "Error in closeOperation");
}
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
}
@@ -390,14 +393,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
status = RpcUtils.getStatus(TSStatusCode.METADATA_ERROR, req.getType());
break;
}
- } catch (MetadataException | OutOfMemoryError e) {
+ } catch (NullPointerException | OutOfMemoryError e) {
logger.error(
String.format("Failed to fetch timeseries %s's metadata", req.getColumnPath()), e);
status = RpcUtils.getStatus(TSStatusCode.METADATA_ERROR, e.getMessage());
resp.setStatus(status);
return resp;
} catch (Exception e) {
- logger.error("Error in fetchMetadata : ", e);
+ logger.warn("Error in fetchMetadata : ", e);
status = RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
resp.setStatus(status);
return resp;
@@ -440,10 +443,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
} else {
return RpcUtils.getStatus(result);
}
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils
.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils
+ .getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
} finally {
Measurement.INSTANCE.addOperationLatency(Operation.EXECUTE_JDBC_BATCH, t1);
}
@@ -471,7 +478,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
ERROR_PARSING_SQL + " " + statement + " " + e.getMessage()));
return false;
} catch (SQLParserException e) {
- logger.error("Error occurred when executing {}, check metadata error: ", statement, e);
+ logger.warn("Error occurred when executing {}, check metadata error: ", statement, e);
result.add(RpcUtils.getStatus(
TSStatusCode.SQL_PARSE_ERROR,
ERROR_PARSING_SQL + " " + statement + " " + e.getMessage()));
@@ -489,10 +496,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
RpcUtils.getStatus(TSStatusCode.QUERY_NOT_ALLOWED,
"query statement not allowed: " + statement));
return false;
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
result.add(RpcUtils.getStatus(
TSStatusCode.INTERNAL_SERVER_ERROR, "server Internal Error: " + e.getMessage()));
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ result.add(RpcUtils.getStatus(
+ TSStatusCode.INTERNAL_SERVER_ERROR, "server Internal Error: " + e.getMessage()));
}
return true;
}
@@ -520,7 +531,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
logger.warn(ERROR_PARSING_SQL, req.getStatement() + " " + e.getMessage());
return RpcUtils.getTSExecuteStatementResp(TSStatusCode.SQL_PARSE_ERROR, e.getMessage());
} catch (SQLParserException e) {
- logger.error(CHECK_METADATA_ERROR, e);
+ logger.warn(CHECK_METADATA_ERROR, e);
return RpcUtils.getTSExecuteStatementResp(
TSStatusCode.METADATA_ERROR, CHECK_METADATA_ERROR + e.getMessage());
} catch (QueryProcessException e) {
@@ -528,9 +539,12 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return RpcUtils.getTSExecuteStatementResp(
RpcUtils.getStatus(TSStatusCode.QUERY_PROCESS_ERROR,
"Meet error in query process: " + e.getMessage()));
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getTSExecuteStatementResp(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getTSExecuteStatementResp(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
@@ -566,13 +580,17 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return RpcUtils.getTSExecuteStatementResp(TSStatusCode.SQL_PARSE_ERROR,
ERROR_PARSING_SQL + e.getMessage());
} catch (SQLParserException e) {
- logger.error(CHECK_METADATA_ERROR, e);
+ logger.warn(CHECK_METADATA_ERROR, e);
return RpcUtils.getTSExecuteStatementResp(
TSStatusCode.METADATA_ERROR, CHECK_METADATA_ERROR + e.getMessage());
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getTSExecuteStatementResp(
RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getTSExecuteStatementResp(
+ RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
}
}
@@ -606,13 +624,17 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return RpcUtils.getTSExecuteStatementResp(TSStatusCode.SQL_PARSE_ERROR,
ERROR_PARSING_SQL + e.getMessage());
} catch (SQLParserException e) {
- logger.error(CHECK_METADATA_ERROR, e);
+ logger.warn(CHECK_METADATA_ERROR, e);
return RpcUtils.getTSExecuteStatementResp(
TSStatusCode.METADATA_ERROR, CHECK_METADATA_ERROR + e.getMessage());
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getTSExecuteStatementResp(
RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getTSExecuteStatementResp(
+ RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
}
}
@@ -739,7 +761,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return resp;
} catch (Exception e) {
- logger.error("{}: Internal server error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
+ logger.warn("{}: Internal server error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
if (e instanceof NullPointerException) {
e.printStackTrace();
}
@@ -747,7 +769,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
try {
releaseQueryResource(queryId);
} catch (StorageEngineException ex) {
- logger.error("Error happened while releasing query resource: ", ex);
+ logger.warn("Error happened while releasing query resource: ", ex);
}
}
return RpcUtils.getTSExecuteStatementResp(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
@@ -810,7 +832,7 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
case MERGE_STATUS:
return StaticResps.MERGE_STATUS_RESP;
default:
- logger.error("Unsupported show content type: {}", showPlan.getShowContentType());
+ logger.warn("Unsupported show content type: {}", showPlan.getShowContentType());
throw new QueryProcessException(
"Unsupported show content type:" + showPlan.getShowContentType());
}
@@ -1023,11 +1045,11 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return resp;
}
} catch (Exception e) {
- logger.error("{}: Internal server error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
+ logger.warn("{}: Internal server error: ", IoTDBConstant.GLOBAL_DB_NAME, e);
try {
releaseQueryResource(req.queryId);
} catch (StorageEngineException ex) {
- logger.error("Error happened while releasing query resource: ", ex);
+ logger.warn("Error happened while releasing query resource: ", ex);
}
return RpcUtils.getTSFetchResultsResp(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
@@ -1123,10 +1145,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
}
String statement = req.getStatement();
return executeUpdateStatement(statement, req.getSessionId());
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getTSExecuteStatementResp(
RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getTSExecuteStatementResp(
+ RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage()));
}
}
@@ -1207,10 +1233,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
if (zoneId != null) {
resp = new TSGetTimeZoneResp(tsStatus, zoneId.toString());
}
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error while generating time zone.", e);
tsStatus = RpcUtils.getStatus(TSStatusCode.GENERATE_TIME_ZONE_ERROR);
resp = new TSGetTimeZoneResp(tsStatus, "Unknown time zone");
+ } catch (Exception e) {
+ logger.warn("meet error while generating time zone.", e);
+ tsStatus = RpcUtils.getStatus(TSStatusCode.GENERATE_TIME_ZONE_ERROR);
+ resp = new TSGetTimeZoneResp(tsStatus, "Unknown time zone");
}
return resp;
}
@@ -1222,9 +1252,12 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
String timeZoneID = req.getTimeZone();
sessionIdZoneIdMap.put(req.getSessionId(), ZoneId.of(timeZoneID));
tsStatus = RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error while setting time zone.", e);
tsStatus = RpcUtils.getStatus(TSStatusCode.SET_TIME_ZONE_ERROR);
+ } catch (Exception e) {
+ logger.warn("meet error while setting time zone.", e);
+ tsStatus = RpcUtils.getStatus(TSStatusCode.SET_TIME_ZONE_ERROR);
}
return new TSStatus(tsStatus);
}
@@ -1274,10 +1307,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
&& isAllSuccessful);
}
statusList.add(status);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when insert in batch", e);
isAllSuccessful = false;
statusList.add(RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR));
+ } catch (Exception e) {
+ logger.warn("meet error when insert in batch", e);
+ isAllSuccessful = false;
+ statusList.add(RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR));
}
}
@@ -1320,10 +1357,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
&& isAllSuccessful);
}
statusList.add(status);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when insert in batch", e);
isAllSuccessful = false;
statusList.add(RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR));
+ } catch (Exception e) {
+ logger.warn("meet error when insert in batch", e);
+ isAllSuccessful = false;
+ statusList.add(RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR));
}
}
@@ -1395,8 +1436,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return status;
}
return executeNonQueryPlan(plan);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when insert", e);
+ } catch (Exception e) {
+ logger.warn("meet error when insert", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1425,8 +1468,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return status;
}
return executeNonQueryPlan(plan);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when insert", e);
+ } catch (Exception e) {
+ logger.warn("meet error when insert", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1453,8 +1498,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return new TSStatus(status);
}
return new TSStatus(executeNonQueryPlan(plan));
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when delete data", e);
+ } catch (Exception e) {
+ logger.warn("meet error when delete data", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1483,10 +1530,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
}
return executeNonQueryPlan(insertTabletPlan);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("{}: error occurs when executing statements", IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils
.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn("{}: error occurs when executing statements", IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils
+ .getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());
} finally {
Measurement.INSTANCE.addOperationLatency(Operation.EXECUTE_RPC_BATCH_INSERT, t1);
}
@@ -1529,10 +1580,12 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return RpcUtils.getStatus(statusList);
}
return RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("{}: error occurs when insertTablets", IoTDBConstant.GLOBAL_DB_NAME, e);
- return RpcUtils
- .getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());
+ return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn("{}: error occurs when insertTablets", IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR, e.getMessage());
} finally {
Measurement.INSTANCE.addOperationLatency(Operation.EXECUTE_RPC_BATCH_INSERT, t1);
}
@@ -1552,8 +1605,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return new TSStatus(status);
}
return new TSStatus(executeNonQueryPlan(plan));
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when set storage group", e);
+ } catch (Exception e) {
+ logger.warn("meet error when set storage group", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1575,8 +1630,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return new TSStatus(status);
}
return new TSStatus(executeNonQueryPlan(plan));
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when delete storage groups", e);
+ } catch (Exception e) {
+ logger.warn("meet error when delete storage groups", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1602,8 +1659,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return status;
}
return executeNonQueryPlan(plan);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when create timeseries", e);
+ } catch (Exception e) {
+ logger.warn("meet error when create timeseries", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1712,8 +1771,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
logger.debug("Create multiple timeseries failed!");
return RpcUtils.getStatus(statusList);
}
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when create multi timeseries", e);
+ } catch (Exception e) {
+ logger.warn("meet error when create multi timeseries", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1735,8 +1796,10 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
return status;
}
return executeNonQueryPlan(plan);
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error("meet error when delete timeseries", e);
+ } catch (Exception e) {
+ logger.warn("meet error when delete timeseries", e);
}
return RpcUtils.getStatus(TSStatusCode.EXECUTE_STATEMENT_ERROR);
}
@@ -1758,11 +1821,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
"No permissions for this operation " + plan.getOperatorType().toString());
}
} catch (AuthException e) {
- logger.error("meet error while checking authorization.", e);
+ logger.warn("meet error while checking authorization.", e);
return RpcUtils.getStatus(TSStatusCode.UNINITIALIZED_AUTH_ERROR, e.getMessage());
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
return null;
}
@@ -1775,11 +1841,14 @@ public class TSServiceImpl implements TSIService.Iface, ServerContext {
} catch (BatchInsertionException e) {
return RpcUtils.getStatus(Arrays.asList(e.getFailingStatus()));
} catch (QueryProcessException e) {
- logger.error("meet error while processing non-query. ", e);
+ logger.warn("meet error while processing non-query. ", e);
return RpcUtils.getStatus(e.getErrorCode(), e.getMessage());
- } catch (Exception e) {
+ } catch (NullPointerException e) {
logger.error(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
return RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
+ } catch (Exception e) {
+ logger.warn(SERVER_INTERNAL_ERROR, IoTDBConstant.GLOBAL_DB_NAME, e);
+ return RpcUtils.getStatus(TSStatusCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
return execRet