You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/11/16 14:31:37 UTC

[iotdb] branch rel/0.12 updated: [IOTDB-2018] Query dataset memory leak on server caused by python client (#4409)

This is an automated email from the ASF dual-hosted git repository.

rong 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 6d689f9  [IOTDB-2018] Query dataset memory leak on server caused by python client (#4409)
6d689f9 is described below

commit 6d689f952ba713e228d932db101ebc7dbbfc1e9b
Author: Leiyang <30...@users.noreply.github.com>
AuthorDate: Tue Nov 16 22:31:05 2021 +0800

    [IOTDB-2018] Query dataset memory leak on server caused by python client (#4409)
    
    fix leak in python client: statementId not set in TSCloseOperationReq.
---
 client-py/iotdb/Session.py               | 1 +
 client-py/iotdb/utils/IoTDBRpcDataSet.py | 4 +++-
 client-py/iotdb/utils/SessionDataSet.py  | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/client-py/iotdb/Session.py b/client-py/iotdb/Session.py
index 5db100a..5a44312 100644
--- a/client-py/iotdb/Session.py
+++ b/client-py/iotdb/Session.py
@@ -649,6 +649,7 @@ class Session(object):
             resp.columnNameIndexMap,
             resp.queryId,
             self.__client,
+            self.__statement_id,
             self.__session_id,
             resp.queryDataSet,
             resp.ignoreTimeStamp,
diff --git a/client-py/iotdb/utils/IoTDBRpcDataSet.py b/client-py/iotdb/utils/IoTDBRpcDataSet.py
index f71b5d9..6520a04 100644
--- a/client-py/iotdb/utils/IoTDBRpcDataSet.py
+++ b/client-py/iotdb/utils/IoTDBRpcDataSet.py
@@ -41,10 +41,12 @@ class IoTDBRpcDataSet(object):
         ignore_timestamp,
         query_id,
         client,
+        statement_id,
         session_id,
         query_data_set,
         fetch_size,
     ):
+        self.__statement_id = statement_id
         self.__session_id = session_id
         self.__ignore_timestamp = ignore_timestamp
         self.__sql = sql
@@ -109,7 +111,7 @@ class IoTDBRpcDataSet(object):
         if self.__client is not None:
             try:
                 status = self.__client.closeOperation(
-                    TSCloseOperationReq(self.__session_id, self.__query_id)
+                    TSCloseOperationReq(self.__session_id, self.__query_id, self.__statement_id)
                 )
                 logger.debug(
                     "close session {}, message: {}".format(
diff --git a/client-py/iotdb/utils/SessionDataSet.py b/client-py/iotdb/utils/SessionDataSet.py
index f0f7266..7d49c5e 100644
--- a/client-py/iotdb/utils/SessionDataSet.py
+++ b/client-py/iotdb/utils/SessionDataSet.py
@@ -39,6 +39,7 @@ class SessionDataSet(object):
         column_name_index,
         query_id,
         client,
+        statement_id,
         session_id,
         query_data_set,
         ignore_timestamp,
@@ -51,6 +52,7 @@ class SessionDataSet(object):
             ignore_timestamp,
             query_id,
             client,
+            statement_id,
             session_id,
             query_data_set,
             1024,