diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java index 1d75920451dac..0224c29ca50f5 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java @@ -786,6 +786,10 @@ protected synchronized void startSubServers() { /** When the node restarts, it sends handshakes to all other nodes so they may know it is back. */ private void sendHandshake() { for (Node node : allNodes) { + if (ClusterUtils.nodeEqual(node, thisNode)) { + // no need to shake hands with yourself + continue; + } try { if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) { AsyncMetaClient asyncClient = (AsyncMetaClient) getAsyncClient(node); diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java index 4c645879398a5..446382b751f59 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java @@ -353,4 +353,10 @@ public static PartitionGroup partitionByPathTimeWithSync( } return partitionGroup; } + + public static boolean nodeEqual(Node node1, Node node2) { + ClusterNode clusterNode1 = new ClusterNode(node1); + ClusterNode clusterNode2 = new ClusterNode(node2); + return clusterNode1.equals(clusterNode2); + } }