This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch ty/session in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 0a23d94ea45cc0565fd6422ea10eee890042b3a4 Author: JackieTien97 <[email protected]> AuthorDate: Fri Mar 15 10:53:50 2024 +0800 Fix Concurrent bug between NodeSupplier.close() and its run() --- .../src/main/java/org/apache/iotdb/session/NodesSupplier.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java b/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java index ccb83b9a12d..8f0244bbcab 100644 --- a/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java +++ b/iotdb-client/session/src/main/java/org/apache/iotdb/session/NodesSupplier.java @@ -170,8 +170,11 @@ public class NodesSupplier implements INodeSupplier, Runnable { } } - if (client != null && !updateDataNodeList()) { - destroyCurrentClient(); + // make sure the following code block can run thread-safely with close() method. + synchronized (this) { + if (client != null && !updateDataNodeList()) { + destroyCurrentClient(); + } } }
