You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sz...@apache.org on 2022/07/21 19:35:30 UTC
[ratis] 05/10: RATIS-1624. Can't use set configuration to add a new Listener correctly. (#683)
This is an automated email from the ASF dual-hosted git repository.
szetszwo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 4f4182c35ced647a38de7ef97bc2e803832761e0
Author: qian0817 <qi...@gmail.com>
AuthorDate: Wed Jul 20 23:31:12 2022 +0800
RATIS-1624. Can't use set configuration to add a new Listener correctly. (#683)
(cherry picked from commit b8f050eab1d8a1922f158a6142f86c10f395e79a)
---
.../src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java | 2 +-
.../src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
index 16cb2582..9e170e93 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java
@@ -1079,7 +1079,7 @@ class LeaderStateImpl implements LeaderState {
}
boolean contains(RaftPeerId peerId) {
- return newPeers.containsKey(peerId);
+ return newPeers.containsKey(peerId) || newListeners.containsKey(peerId);
}
void fail(BootStrapProgress progress) {
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
index d4711fbd..1954e33d 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
@@ -1145,6 +1145,7 @@ class RaftServerImpl implements RaftServer.Division,
}
getRaftServer().addRaftPeers(serversInNewConf);
+ getRaftServer().addRaftPeers(listenersInNewConf);
// add staging state into the leaderState
pending = leaderState.startSetConfiguration(request, serversInNewConf);
}