diff --git a/raft/log.go b/raft/log.go index 11ea6e417..fa7bf5deb 100644 --- a/raft/log.go +++ b/raft/log.go @@ -266,13 +266,15 @@ func (l *raftLog) slice(lo uint64, hi uint64) []pb.Entry { if lo < l.unstable { storedEnts, err := l.storage.Entries(lo, min(hi, l.unstable)) if err == ErrCompacted { + // This should never fail because it has been checked before. + log.Panicf("entries[%d:%d) from storage is out of bound", lo, min(hi, l.unstable)) return nil } else if err != nil { panic(err) // TODO(bdarnell) } ents = append(ents, storedEnts...) } - if len(l.unstableEnts) > 0 && hi > l.unstable { + if hi > l.unstable { firstUnstable := max(lo, l.unstable) ents = append(ents, l.unstableEnts[firstUnstable-l.unstable:hi-l.unstable]...) }