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

caogaofei pushed a commit to branch beyyes/alive_add_peer
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 31d83009f16073c2e850a09341e343bc801a460c
Author: Beyyes <[email protected]>
AuthorDate: Thu Sep 22 21:08:19 2022 +0800

    filter running node in add region peer step
---
 .../iotdb/confignode/procedure/env/DataNodeRemoveHandler.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
index d6b3b2b186..d93ca8398a 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
@@ -558,8 +558,15 @@ public class DataNodeRemoveHandler {
       return Optional.empty();
     }
 
+    List<TDataNodeLocation> aliveDataNodes =
+        
configManager.getNodeManager().filterDataNodeThroughStatus(NodeStatus.Running).stream()
+            .map(TDataNodeConfiguration::getLocation)
+            .collect(Collectors.toList());
+
     // TODO replace findAny() by select the low load node.
-    return regionReplicaNodes.stream().filter(e -> 
!e.equals(filterLocation)).findAny();
+    return regionReplicaNodes.stream()
+        .filter(e -> aliveDataNodes.contains(e) && !e.equals(filterLocation))
+        .findAny();
   }
 
   private String getIdWithRpcEndpoint(TDataNodeLocation location) {

Reply via email to