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 2022/01/25 09:55:47 UTC
[iotdb] branch rel/0.12 updated: ignore logging sg not ready exception (#4973)
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch rel/0.12
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.12 by this push:
new c088690 ignore logging sg not ready exception (#4973)
c088690 is described below
commit c088690b091cddf04f6171b47130cf9dbb00a130
Author: Alan Choo <43...@users.noreply.github.com>
AuthorDate: Tue Jan 25 17:54:42 2022 +0800
ignore logging sg not ready exception (#4973)
---
.../org/apache/iotdb/db/service/TSServiceImpl.java | 42 +++++++++++++---------
1 file changed, 26 insertions(+), 16 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 45988da..2951c9c 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
@@ -1960,26 +1960,32 @@ public class TSServiceImpl implements TSIService.Iface {
private TSStatus tryCatchQueryException(Exception e) {
if (e instanceof QueryTimeoutRuntimeException) {
DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(e.getMessage(), e);
- return RpcUtils.getStatus(TSStatusCode.TIME_OUT, getRootCause(e));
+ return RpcUtils.getStatus(TSStatusCode.TIME_OUT, getRootCause(e).getMessage());
} else if (e instanceof ParseCancellationException) {
DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_PARSING_SQL_ERROR, e);
return RpcUtils.getStatus(
- TSStatusCode.SQL_PARSE_ERROR, INFO_PARSING_SQL_ERROR + getRootCause(e));
+ TSStatusCode.SQL_PARSE_ERROR, INFO_PARSING_SQL_ERROR + getRootCause(e).getMessage());
} else if (e instanceof SQLParserException) {
DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_CHECK_METADATA_ERROR, e);
return RpcUtils.getStatus(
- TSStatusCode.METADATA_ERROR, INFO_CHECK_METADATA_ERROR + getRootCause(e));
+ TSStatusCode.METADATA_ERROR, INFO_CHECK_METADATA_ERROR + getRootCause(e).getMessage());
} else if (e instanceof QueryProcessException) {
DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_QUERY_PROCESS_ERROR, e);
return RpcUtils.getStatus(
- TSStatusCode.QUERY_PROCESS_ERROR, INFO_QUERY_PROCESS_ERROR + getRootCause(e));
+ TSStatusCode.QUERY_PROCESS_ERROR,
+ INFO_QUERY_PROCESS_ERROR + getRootCause(e).getMessage());
} else if (e instanceof QueryInBatchStatementException) {
DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_NOT_ALLOWED_IN_BATCH_ERROR, e);
return RpcUtils.getStatus(
- TSStatusCode.QUERY_NOT_ALLOWED, INFO_NOT_ALLOWED_IN_BATCH_ERROR + getRootCause(e));
- } else if (e instanceof IoTDBException && !(e instanceof StorageGroupNotReadyException)) {
- DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_QUERY_PROCESS_ERROR, e);
- return RpcUtils.getStatus(((IoTDBException) e).getErrorCode(), getRootCause(e));
+ TSStatusCode.QUERY_NOT_ALLOWED,
+ INFO_NOT_ALLOWED_IN_BATCH_ERROR + getRootCause(e).getMessage());
+ } else if (e instanceof IoTDBException) {
+ Throwable rootCause = getRootCause(e);
+ // ignore logging sg not ready exception
+ if (!(rootCause instanceof StorageGroupNotReadyException)) {
+ DETAILED_FAILURE_QUERY_TRACE_LOGGER.warn(INFO_QUERY_PROCESS_ERROR, e);
+ }
+ return RpcUtils.getStatus(((IoTDBException) e).getErrorCode(), rootCause.getMessage());
}
return null;
}
@@ -1996,13 +2002,17 @@ public class TSServiceImpl implements TSIService.Iface {
if (e instanceof BatchProcessException) {
LOGGER.warn(message, e);
return RpcUtils.getStatus(Arrays.asList(((BatchProcessException) e).getFailingStatus()));
- } else if (e instanceof IoTDBException && !(e instanceof StorageGroupNotReadyException)) {
- if (((IoTDBException) e).isUserException()) {
- LOGGER.warn(message + e.getMessage());
- } else {
- LOGGER.warn(message, e);
+ } else if (e instanceof IoTDBException) {
+ Throwable rootCause = getRootCause(e);
+ // ignore logging sg not ready exception
+ if (!(rootCause instanceof StorageGroupNotReadyException)) {
+ if (((IoTDBException) e).isUserException()) {
+ LOGGER.warn(message + e.getMessage());
+ } else {
+ LOGGER.warn(message, e);
+ }
}
- return RpcUtils.getStatus(((IoTDBException) e).getErrorCode(), getRootCause(e));
+ return RpcUtils.getStatus(((IoTDBException) e).getErrorCode(), rootCause.getMessage());
}
return null;
}
@@ -2021,10 +2031,10 @@ public class TSServiceImpl implements TSIService.Iface {
return RpcUtils.getStatus(statusCode, message + e.getMessage());
}
- private String getRootCause(Throwable e) {
+ private Throwable getRootCause(Throwable e) {
while (e.getCause() != null) {
e = e.getCause();
}
- return e.getMessage();
+ return e;
}
}