This is an automated email from the ASF dual-hosted git repository.
jackietien 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 bbe031aaebe Fix thread leak in session while connected DN is down
bbe031aaebe is described below
commit bbe031aaebe24a5587937139bd5837a8c572f358
Author: Jackie Tien <[email protected]>
AuthorDate: Wed Jun 18 16:33:14 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);
}
}