From 1a8c37f44ee42f01574346f429813925d461effd Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 27 Mar 2026 06:23:26 +0200 Subject: Fix same-term Raft append regression b85586a4-4eb9-4686-93c7-0ab14173baa5 --- src/main/java/protocols/implementations/VSRaftProtocol.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/main/java/protocols/implementations/VSRaftProtocol.java') diff --git a/src/main/java/protocols/implementations/VSRaftProtocol.java b/src/main/java/protocols/implementations/VSRaftProtocol.java index d0066e0..6828b34 100644 --- a/src/main/java/protocols/implementations/VSRaftProtocol.java +++ b/src/main/java/protocols/implementations/VSRaftProtocol.java @@ -384,18 +384,21 @@ public class VSRaftProtocol extends VSAbstractProtocol { int messageTerm = recvMessage.getInteger("term"); int messageLeaderId = recvMessage.getInteger("leaderId"); int messageLogIndex = recvMessage.getInteger("logIndex"); + boolean isSameTerm = messageTerm == currentTerm; + + if (messageTerm < currentTerm) { + return; + } if (messageTerm > currentTerm) { becomeFollower(messageTerm, messageLeaderId); - } else { - return; } if (messageLogIndex != logIndex + 1) { return; } - if (messageTerm == currentTerm) { + if (isSameTerm) { leaderId = messageLeaderId; isLeader = false; isCandidate = false; -- cgit v1.2.3