From f947c815d03af6c42a5fc2bd0de42ade51d3820e Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Thu, 21 Jan 2021 16:09:37 +0800 Subject: [PATCH] raft: check `VotersOutgoing` for snapshot Close #12631. Signed-off-by: Jay Lee --- raft/raft.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/raft/raft.go b/raft/raft.go index e048534a4..71a3e958d 100644 --- a/raft/raft.go +++ b/raft/raft.go @@ -1412,6 +1412,9 @@ func (r *raft) restore(s pb.Snapshot) bool { for _, set := range [][]uint64{ cs.Voters, cs.Learners, + cs.VotersOutgoing, + // `LearnersNext` doesn't need to be checked. According to the rules, if a peer in + // `LearnersNext`, it has to be in `VotersOutgoing`. } { for _, id := range set { if id == r.id {