Просмотр исходного кода

raft: leave TODO about leaving StateSnapshot

The condition is overly strict, which has popped up in CockroachDB
recently.
Tobias Schottdorf 6 лет назад
Родитель
Сommit
3b02d4c5ff
1 измененных файлов с 3 добавлено и 0 удалено
  1. 3 0
      raft/raft.go

+ 3 - 0
raft/raft.go

@@ -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