X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fbehaviors%2FDelayedMessagesElectionScenarioTest.java;h=52985fd3c134ef82cdf3637c4b966a10b961049c;hb=HEAD;hp=d481e6f1491ddaf82e11d7f8b000dab5b3d301b4;hpb=b5cb353e3553a39f576c284119af75ffa5ea66a9;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/DelayedMessagesElectionScenarioTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/DelayedMessagesElectionScenarioTest.java index d481e6f149..52985fd3c1 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/DelayedMessagesElectionScenarioTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/DelayedMessagesElectionScenarioTest.java @@ -15,6 +15,7 @@ import org.junit.Test; import org.opendaylight.controller.cluster.raft.DefaultConfigParamsImpl; import org.opendaylight.controller.cluster.raft.RaftState; import org.opendaylight.controller.cluster.raft.base.messages.TimeoutNow; +import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; import org.opendaylight.controller.cluster.raft.messages.RequestVote; import org.opendaylight.controller.cluster.raft.messages.RequestVoteReply; @@ -148,15 +149,19 @@ public class DelayedMessagesElectionScenarioTest extends AbstractLeaderElectionS // should switch to Candidate and send out RequestVote messages. Set member 1 and 3 actors // to capture RequestVote but not to forward to the behavior just yet as we want to // control the order of RequestVote messages to member 1 and 3. - - member1Actor.dropMessagesToBehavior(RequestVote.class); - member2Actor.expectBehaviorStateChange(); + // member 1 and member 3 may reach consensus to consider leader's initial Noop entry as committed, hence + // leader would elicit this information to member 2. + // We do not want that, as member 2 would respond to that request either before it bumps or after it bumps its + // term -- if it would see that message post-bump, it would leak term 2 back to member 1, hence leader would + // know about it. + member2Actor.dropMessagesToBehavior(AppendEntries.class); + + member1Actor.dropMessagesToBehavior(RequestVote.class); member3Actor.dropMessagesToBehavior(RequestVote.class); member2ActorRef.tell(TimeoutNow.INSTANCE, ActorRef.noSender()); - member1Actor.waitForExpectedMessages(RequestVote.class); member3Actor.waitForExpectedMessages(RequestVote.class);