This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ThreadLeak in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit bc1b93340de0b5cc59f4c1e72477788c62f58be2 Author: JackieTien97 <[email protected]> AuthorDate: Wed Jun 18 15:17:42 2025 +0800 Fix thread leak in session while connected DN is down --- .../session/src/main/java/org/apache/iotdb/session/Session.java | 6 +++--- .../main/java/org/apache/iotdb/session/TableSessionBuilder.java | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java index 95f6e2df65e..dc54d5fd772 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/Session.java @@ -627,10 +627,10 @@ public class Session implements ISession { @Override public synchronized void close() throws IoTDBConnectionException { - if (isClosed) { - return; - } try { + if (isClosed) { + return; + } if (enableRedirection) { for (SessionConnection sessionConnection : endPointToSessionConnection.values()) { sessionConnection.close(); diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java index fd59846c6e6..a46de6562ea 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/TableSessionBuilder.java @@ -271,7 +271,12 @@ public class TableSessionBuilder extends AbstractSessionBuilder { } this.sqlDialect = TABLE; Session newSession = new Session(this); - newSession.open(enableCompression, connectionTimeoutInMs); + try { + newSession.open(enableCompression, connectionTimeoutInMs); + } catch (IoTDBConnectionException e) { + newSession.close(); + throw e; + } return new TableSession(newSession); } }
