raft: leave TODO about leaving StateSnapshot

The condition is overly strict, which has popped up in CockroachDB
recently.
This commit is contained in:
Tobias Schottdorf 2019-07-26 23:19:34 +02:00
parent a91f4e45c0
commit 3b02d4c5ff

View File

@ -1093,6 +1093,9 @@ func stepLeader(r *raft, m pb.Message) error {
case pr.State == tracker.StateProbe:
pr.BecomeReplicate()
case pr.State == tracker.StateSnapshot && pr.Match >= pr.PendingSnapshot:
// TODO(tbg): we should also enter this branch if a snapshot is
// received that is below pr.PendingSnapshot but which makes it
// possible to use the log again.
r.logger.Debugf("%x recovered from needing snapshot, resumed sending replication messages to %x [%s]", r.id, m.From, pr)
// Transition back to replicating state via probing state
// (which takes the snapshot into account). If we didn't