diff --git a/raft/raft.go b/raft/raft.go index fadc6ba31..ec9ca1013 100644 --- a/raft/raft.go +++ b/raft/raft.go @@ -430,7 +430,7 @@ func stepLeader(r *raft, m pb.Message) { } } case msgVote: - r.send(pb.Message{To: m.From, Type: msgVoteResp, Index: -1, Denied: true}) + r.send(pb.Message{To: m.From, Type: msgVoteResp, Denied: true}) } } @@ -445,7 +445,7 @@ func stepCandidate(r *raft, m pb.Message) { r.becomeFollower(m.Term, m.From) r.handleSnapshot(m) case msgVote: - r.send(pb.Message{To: m.From, Type: msgVoteResp, Index: -1, Denied: true}) + r.send(pb.Message{To: m.From, Type: msgVoteResp, Denied: true}) case msgVoteResp: gr := r.poll(m.From, !m.Denied) switch r.q() { @@ -477,9 +477,9 @@ func stepFollower(r *raft, m pb.Message) { if (r.Vote == None || r.Vote == m.From) && r.raftLog.isUpToDate(m.Index, m.LogTerm) { r.elapsed = 0 r.Vote = m.From - r.send(pb.Message{To: m.From, Type: msgVoteResp, Index: r.raftLog.lastIndex()}) + r.send(pb.Message{To: m.From, Type: msgVoteResp}) } else { - r.send(pb.Message{To: m.From, Type: msgVoteResp, Index: -1, Denied: true}) + r.send(pb.Message{To: m.From, Type: msgVoteResp, Denied: true}) } } } diff --git a/raft/raft_test.go b/raft/raft_test.go index ecd152d66..11beec0d7 100644 --- a/raft/raft_test.go +++ b/raft/raft_test.go @@ -535,33 +535,33 @@ func TestRecvMsgVote(t *testing.T) { state StateType i, term int64 voteFor int64 - w int64 + wdenied bool }{ - {StateFollower, 0, 0, None, -1}, - {StateFollower, 0, 1, None, -1}, - {StateFollower, 0, 2, None, -1}, - {StateFollower, 0, 3, None, 2}, + {StateFollower, 0, 0, None, true}, + {StateFollower, 0, 1, None, true}, + {StateFollower, 0, 2, None, true}, + {StateFollower, 0, 3, None, false}, - {StateFollower, 1, 0, None, -1}, - {StateFollower, 1, 1, None, -1}, - {StateFollower, 1, 2, None, -1}, - {StateFollower, 1, 3, None, 2}, + {StateFollower, 1, 0, None, true}, + {StateFollower, 1, 1, None, true}, + {StateFollower, 1, 2, None, true}, + {StateFollower, 1, 3, None, false}, - {StateFollower, 2, 0, None, -1}, - {StateFollower, 2, 1, None, -1}, - {StateFollower, 2, 2, None, 2}, - {StateFollower, 2, 3, None, 2}, + {StateFollower, 2, 0, None, true}, + {StateFollower, 2, 1, None, true}, + {StateFollower, 2, 2, None, false}, + {StateFollower, 2, 3, None, false}, - {StateFollower, 3, 0, None, -1}, - {StateFollower, 3, 1, None, -1}, - {StateFollower, 3, 2, None, 2}, - {StateFollower, 3, 3, None, 2}, + {StateFollower, 3, 0, None, true}, + {StateFollower, 3, 1, None, true}, + {StateFollower, 3, 2, None, false}, + {StateFollower, 3, 3, None, false}, - {StateFollower, 3, 2, 2, 2}, - {StateFollower, 3, 2, 1, -1}, + {StateFollower, 3, 2, 2, false}, + {StateFollower, 3, 2, 1, true}, - {StateLeader, 3, 3, 1, -1}, - {StateCandidate, 3, 3, 1, -1}, + {StateLeader, 3, 3, 1, true}, + {StateCandidate, 3, 3, 1, true}, } for i, tt := range tests { @@ -582,11 +582,11 @@ func TestRecvMsgVote(t *testing.T) { msgs := sm.ReadMessages() if g := len(msgs); g != 1 { - t.Errorf("#%d: len(msgs) = %d, want 1", i, g) + t.Fatalf("#%d: len(msgs) = %d, want 1", i, g) continue } - if g := msgs[0].Index; g != tt.w { - t.Errorf("#%d, m.Index = %d, want %d", i, g, tt.w) + if g := msgs[0].Denied; g != tt.wdenied { + t.Errorf("#%d, m.Index = %d, want %d", i, g, tt.wdenied) } } }