Browse Source

bump(goraft/raft): cfa43a115

Yicheng Qin 11 years ago
parent
commit
66ce075ce1
1 changed files with 7 additions and 2 deletions
  1. 7 2
      third_party/github.com/goraft/raft/server.go

+ 7 - 2
third_party/github.com/goraft/raft/server.go

@@ -934,8 +934,13 @@ func (s *server) processAppendEntriesRequest(req *AppendEntriesRequest) (*Append
 
 	if req.Term == s.currentTerm {
 		_assert(s.State() != Leader, "leader.elected.at.same.term.%d\n", s.currentTerm)
-		// change state to follower
-		s.setState(Follower)
+
+		// step-down to follower when it is a candidate
+		if s.state == Candidate {
+			// change state to follower
+			s.setState(Follower)
+		}
+
 		// discover new leader when candidate
 		// save leader name when follower
 		s.leader = req.LeaderName