mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
raft: update lead to none when receives vaild msgVote
This commit is contained in:
@@ -311,7 +311,11 @@ func (sm *stateMachine) Step(m Message) (ok bool) {
|
||||
case m.Term == 0:
|
||||
// local message
|
||||
case m.Term > sm.term.Get():
|
||||
sm.becomeFollower(m.Term, m.From)
|
||||
lead := m.From
|
||||
if m.Type == msgVote {
|
||||
lead = none
|
||||
}
|
||||
sm.becomeFollower(m.Term, lead)
|
||||
case m.Term < sm.term.Get():
|
||||
// ignore
|
||||
return true
|
||||
|
||||
@@ -685,7 +685,7 @@ func TestAllServerStepdown(t *testing.T) {
|
||||
}
|
||||
|
||||
for j, msgType := range tmsgTypes {
|
||||
sm.Step(Message{Type: msgType, Term: tterm, LogTerm: tterm})
|
||||
sm.Step(Message{From: 1, Type: msgType, Term: tterm, LogTerm: tterm})
|
||||
|
||||
if sm.state != tt.wstate {
|
||||
t.Errorf("#%d.%d state = %v , want %v", i, j, sm.state, tt.wstate)
|
||||
@@ -696,6 +696,13 @@ func TestAllServerStepdown(t *testing.T) {
|
||||
if int64(len(sm.log.ents)) != tt.windex {
|
||||
t.Errorf("#%d.%d index = %v , want %v", i, j, len(sm.log.ents), tt.windex)
|
||||
}
|
||||
wlead := int64(1)
|
||||
if msgType == msgVote {
|
||||
wlead = none
|
||||
}
|
||||
if sm.lead.Get() != wlead {
|
||||
t.Errorf("#%d, sm.lead = %d, want %d", i, sm.lead.Get(), none)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user