jsancio commented on a change in pull request #10932: URL: https://github.com/apache/kafka/pull/10932#discussion_r660788266
########## File path: raft/src/test/java/org/apache/kafka/raft/RaftEventSimulationTest.java ########## @@ -1014,6 +1015,26 @@ public void verify() { } } + private static class LeaderNeverLoadSnapshot implements Invariant { + final Cluster cluster; + + private LeaderNeverLoadSnapshot(Cluster cluster) { + this.cluster = cluster; + } + + @Override + public void verify() { + for (RaftNode raftNode : cluster.running()) { + if (raftNode.counter.isWritable()) { + assertTrue(raftNode.counter.getHandleSnapshotCalls() == 0); Review comment: Let's use `assertEquals`: ```suggestion assertEquals(0, raftNode.counter.getHandleSnapshotCalls()); ``` ########## File path: raft/src/main/java/org/apache/kafka/raft/ReplicatedCounter.java ########## @@ -157,13 +160,18 @@ public synchronized void handleSnapshot(SnapshotReader<Integer> reader) { public synchronized void handleLeaderChange(LeaderAndEpoch newLeader) { if (newLeader.isLeader(nodeId)) { log.debug("Counter uncommitted value initialized to {} after claiming leadership in epoch {}", - committed, newLeader); + committed, newLeader); uncommitted = committed; claimedEpoch = OptionalInt.of(newLeader.epoch()); } else { log.debug("Counter uncommitted value reset after resigning leadership"); uncommitted = -1; claimedEpoch = OptionalInt.empty(); } + handleSnapshotCalls = 0; + } + + public int getHandleSnapshotCalls() { Review comment: The Kafka project tends not to prefix accessors with `get`: ```suggestion public int handleSnapshotCalls() { ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org