From ddc4cc79d223d85bb6483650f8a5d207a61ddb83 Mon Sep 17 00:00:00 2001 From: Derek Collison Date: Tue, 16 Feb 2021 15:58:46 -0800 Subject: [PATCH] Make sure to not process AR when no longer leader Signed-off-by: Derek Collison --- server/raft.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/raft.go b/server/raft.go index 4ed24a7f..d70027cf 100644 --- a/server/raft.go +++ b/server/raft.go @@ -2230,8 +2230,13 @@ func (n *raft) processPeerState(ps *peerState) { writePeerState(n.sd, ps) } -// handleAppendEntryResponse just places the decoded response on the appropriate channel. +// handleAppendEntryResponse processes responses to append entries. func (n *raft) handleAppendEntryResponse(sub *subscription, c *client, subject, reply string, msg []byte) { + // Ignore if not the leader. + if !n.Leader() { + n.debug("Ignoring append entry response, no longer leader") + return + } ar := n.decodeAppendEntryResponse(msg) if reply != _EMPTY_ { ar.reply = reply