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

yongzao pushed a commit to branch mark-unknown-when-broken-pipe
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/mark-unknown-when-broken-pipe 
by this push:
     new ac17e8dba42 Finish
ac17e8dba42 is described below

commit ac17e8dba42d2b25c334a5537d164193a98ae6ca
Author: YongzaoDan <[email protected]>
AuthorDate: Thu Oct 26 23:23:00 2023 +0800

    Finish
---
 .../async/handlers/heartbeat/ConfigNodeHeartbeatHandler.java   | 10 +++++++++-
 .../async/handlers/heartbeat/DataNodeHeartbeatHandler.java     |  8 +++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/ConfigNodeHeartbeatHandler.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/ConfigNodeHeartbeatHandler.java
index 9d7e11b23b8..596f55c2a8d 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/ConfigNodeHeartbeatHandler.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/ConfigNodeHeartbeatHandler.java
@@ -19,6 +19,9 @@
 
 package org.apache.iotdb.confignode.client.async.handlers.heartbeat;
 
+import org.apache.iotdb.commons.client.ThriftClient;
+import org.apache.iotdb.commons.cluster.NodeStatus;
+import org.apache.iotdb.commons.cluster.NodeType;
 import org.apache.iotdb.confignode.manager.load.cache.LoadCache;
 import org.apache.iotdb.confignode.manager.load.cache.node.NodeHeartbeatSample;
 
@@ -42,6 +45,11 @@ public class ConfigNodeHeartbeatHandler implements 
AsyncMethodCallback<Long> {
 
   @Override
   public void onError(Exception e) {
-    // Do nothing
+    if (ThriftClient.isConnectionBroken(e)) {
+      cache.forceUpdateNodeCache(
+          NodeType.ConfigNode,
+          nodeId,
+          NodeHeartbeatSample.generateDefaultSample(NodeStatus.Unknown));
+    }
   }
 }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/DataNodeHeartbeatHandler.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/DataNodeHeartbeatHandler.java
index d054478d877..33ae5ca3835 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/DataNodeHeartbeatHandler.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/client/async/handlers/heartbeat/DataNodeHeartbeatHandler.java
@@ -19,6 +19,9 @@
 
 package org.apache.iotdb.confignode.client.async.handlers.heartbeat;
 
+import org.apache.iotdb.commons.client.ThriftClient;
+import org.apache.iotdb.commons.cluster.NodeStatus;
+import org.apache.iotdb.commons.cluster.NodeType;
 import org.apache.iotdb.commons.cluster.RegionStatus;
 import org.apache.iotdb.confignode.manager.load.cache.LoadCache;
 import org.apache.iotdb.confignode.manager.load.cache.node.NodeHeartbeatSample;
@@ -121,6 +124,9 @@ public class DataNodeHeartbeatHandler implements 
AsyncMethodCallback<THeartbeatR
 
   @Override
   public void onError(Exception e) {
-    // Do nothing
+    if (ThriftClient.isConnectionBroken(e)) {
+      loadCache.forceUpdateNodeCache(
+          NodeType.DataNode, nodeId, 
NodeHeartbeatSample.generateDefaultSample(NodeStatus.Unknown));
+    }
   }
 }

Reply via email to