From 57128db631cec559d6fd6ad790ac808c0a274b22 Mon Sep 17 00:00:00 2001 From: nick Date: Thu, 26 Sep 2024 11:16:36 +0900 Subject: [PATCH] feat: update same term handling --- node/pkg/raft/raft.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/node/pkg/raft/raft.go b/node/pkg/raft/raft.go index d02c9dd59..87dd0a01c 100644 --- a/node/pkg/raft/raft.go +++ b/node/pkg/raft/raft.go @@ -150,6 +150,17 @@ func (r *Raft) handleHeartbeat(msg Message) error { r.LeaderID = heartbeatMessage.LeaderID return nil + } else if heartbeatMessage.Term == currentTerm { + if currentRole == Leader { + if r.GetHostId() < heartbeatMessage.LeaderID { + r.ResignLeader() + r.LeaderID = heartbeatMessage.LeaderID + } else { + return nil + } + } else { + r.LeaderID = heartbeatMessage.LeaderID + } } return nil