diff --git a/pkg/storage/replica.go b/pkg/storage/replica.go index 57a6427d822f..e99a0ac69da6 100644 --- a/pkg/storage/replica.go +++ b/pkg/storage/replica.go @@ -3837,6 +3837,14 @@ func (r *Replica) handleRaftReadyRaftMuLocked( const expl = "during advance" if err := r.withRaftGroup(func(raftGroup *raft.RawNode) (bool, error) { raftGroup.Advance(rd) + + // If the Raft group still has more to process then we immediately + // re-enqueue it for another round of processing. This is possible if + // the group's committed entries were paginated due to size limitations + // and we didn't apply all of them in this pass. + if raftGroup.HasReady() { + r.store.enqueueRaftUpdateCheck(r.RangeID) + } return true, nil }); err != nil { return stats, expl, errors.Wrap(err, expl)