mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 11:48:43 -07:00
[IMPROVED] Stepdown on catchup request for something newer than our state (#4179)
When we receive a catchup request for an item beyond our current state, we should stepdown. Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
@@ -2501,6 +2501,13 @@ func (n *raft) catchupFollower(ar *appendEntryResponse) {
|
||||
ae, err := n.loadEntry(start)
|
||||
if err != nil {
|
||||
n.warn("Request from follower for entry at index [%d] errored for state %+v - %v", start, state, err)
|
||||
if err == ErrStoreEOF {
|
||||
// If we are here we are seeing a request for an item beyond our state, meaning we should stepdown.
|
||||
n.stepdown.push(noLeader)
|
||||
n.Unlock()
|
||||
arPool.Put(ar)
|
||||
return
|
||||
}
|
||||
ae, err = n.loadFirstEntry()
|
||||
}
|
||||
if err != nil || ae == nil {
|
||||
|
||||
Reference in New Issue
Block a user