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);
     }