This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 903c3599c42 [remove datanode X IoTV2] Fix concurrent modification when
removing fails and rollback #14336
903c3599c42 is described below
commit 903c3599c42d9e38386b8253bf9d61d084e15b16
Author: Peng Junzhi <[email protected]>
AuthorDate: Fri Dec 6 12:17:31 2024 +0800
[remove datanode X IoTV2] Fix concurrent modification when removing fails
and rollback #14336
---
.../src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java
b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java
index df47567e445..e7a02236f7d 100644
---
a/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java
+++
b/iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/pipe/PipeConsensus.java
@@ -58,6 +58,7 @@ import
org.apache.iotdb.consensus.pipe.service.PipeConsensusRPCServiceProcessor;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -411,8 +412,9 @@ public class PipeConsensus implements IConsensus {
deleteLocalPeer(groupId);
return;
}
+ ImmutableList<Peer> currentPeers = ImmutableList.copyOf(impl.getPeers());
String previousPeerListStr = impl.getPeers().toString();
- for (Peer peer : impl.getPeers()) {
+ for (Peer peer : currentPeers) {
if (!correctPeers.contains(peer)) {
try {
impl.dropConsensusPipeToTargetPeer(peer);