This repository was archived by the owner on Dec 17, 2018. It is now read-only.
Description Reported by @ZymoticB and noticed in testing on AWS.
Trace from #40
[New I/O worker #4] TRACE io.libraft.algorithm.RaftAlgorithm - agent2: RequestVote from agent1: term:2 lastLogIndex:15 lastLogTerm:1
[New I/O worker #4] INFO io.libraft.algorithm.RaftAlgorithm - agent2: changing role LEADER->FOLLOWER in term 2
[New I/O worker #4] INFO io.libraft.algorithm.RaftAlgorithm - agent2: leader changed from agent2 to null
[New I/O worker #4] TRACE io.libraft.algorithm.RaftAlgorithm - agent2: AppendEntriesReply from agent1: term:2 prevLogIndex:6 entryCount:9 applied:false
[New I/O worker #4] ERROR org.jboss.netty.channel.SimpleChannelUpstreamHandler - agent2: uncaught exception processing rpc:AppendEntriesReply{source=agent1, destination=agent2, term=2, prevLogIndex=6, entryCount=9, applied=false} from agent1
java.lang.IllegalStateException: role:FOLLOWER
This situation can be triggered by the following sequence of events:
Initial State:
P1 = LEADER
P2 = FOLLOWER
Term = 1
P1 sends AppendEntries to P2 in term 1.
P2 has an election timeout and advances to term 2.
P2 sends a REQUEST_VOTE to P1.
P1 receives REQUEST_VOTE and transitions to term 2 and becomes FOLLOWER.
P2 receives AppendEntries sent in step 1.
P2 responds with AppendEntriesReply with term 2 and applied = false.
P1 receives AppendEntriesReply and crashes.
Reactions are currently unavailable
Reported by @ZymoticB and noticed in testing on AWS.
Trace from #40
This situation can be triggered by the following sequence of events:
Initial State: