diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-27 06:23:26 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-27 06:23:26 +0200 |
| commit | 1a8c37f44ee42f01574346f429813925d461effd (patch) | |
| tree | ba7f5c7bfb3408d01008db496e061b5cce4b76bf /src/main | |
| parent | f12114c1d9ec50f20f3df3e9c6e335e00f186c10 (diff) | |
Fix same-term Raft append regression b85586a4-4eb9-4686-93c7-0ab14173baa5
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/protocols/implementations/VSRaftProtocol.java | 9 |
1 files changed, 6 insertions, 3 deletions
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; |
