This is an automated email from the ASF dual-hosted git repository. rong pushed a commit to branch issue-3693 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit f4ab1b9a0e79447b5c9d899cfae9c2f96cd12539 Author: Steve Yurong Su <[email protected]> AuthorDate: Thu Aug 5 21:31:03 2021 +0800 [ISSUE-3693] Memory leaks when executing select-into clauses --- .../src/main/java/org/apache/iotdb/db/cost/statistic/Operation.java | 3 ++- server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/cost/statistic/Operation.java b/server/src/main/java/org/apache/iotdb/db/cost/statistic/Operation.java index b73691d..ccb2109 100644 --- a/server/src/main/java/org/apache/iotdb/db/cost/statistic/Operation.java +++ b/server/src/main/java/org/apache/iotdb/db/cost/statistic/Operation.java @@ -24,7 +24,8 @@ public enum Operation { EXECUTE_ROWS_PLAN_IN_BATCH("EXECUTE_ROWS_PLAN_IN_BATCH"), EXECUTE_MULTI_TIMESERIES_PLAN_IN_BATCH("EXECUTE_MULTI_TIMESERIES_PLAN_IN_BATCH"), EXECUTE_RPC_BATCH_INSERT("EXECUTE_RPC_BATCH_INSERT"), - EXECUTE_QUERY("EXECUTE_QUERY"); + EXECUTE_QUERY("EXECUTE_QUERY"), + EXECUTE_SELECT_INTO("EXECUTE_SELECT_INTO"); public String getName() { return name; 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 4c45e09..e834538 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 @@ -1022,12 +1022,10 @@ public class TSServiceImpl implements TSIService.Iface { } return RpcUtils.getTSExecuteStatementResp(TSStatusCode.SUCCESS_STATUS).setQueryId(queryId); - } catch (Exception e) { - sessionManager.releaseQueryResourceNoExceptions(queryId); - throw e; } finally { + sessionManager.releaseQueryResourceNoExceptions(queryId); queryTimeManager.unRegisterQuery(queryId, queryPlan); - Measurement.INSTANCE.addOperationLatency(Operation.EXECUTE_QUERY, startTime); + Measurement.INSTANCE.addOperationLatency(Operation.EXECUTE_SELECT_INTO, startTime); long costTime = System.currentTimeMillis() - startTime; if (costTime >= config.getSlowQueryThreshold()) { SLOW_SQL_LOGGER.info("Cost: {} ms, sql is {}", costTime, statement);
