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) {
