kezhuw commented on PR #2152: URL: https://github.com/apache/zookeeper/pull/2152#issuecomment-2277073649
@tsuna Which ZooKeeper version did you run ? I saw messages you posted on ZOOKEEPER-4394. I guess it is 3.8.2. ZOOKEEPER-4785 has been landed in 3.8.4 and 3.9.2. Though, ZOOKEEPER-4394 was still left behind, but I think the txn loss ZOOKEEPER-4643 and ZOOKEEPER-4646 reported has already been fixed if I understand correctly. Hmm, there might be still paths to data inconsistency as ZOOKEEPER-4541 and ZOOKEEPER-4712 reported. @eolivelli @anmolnar @symat @maoling @tisonkun @li4wang @cnauroth Could anyone please take a look at this ? After #2111(ZOOKEEPER-4785) merged, this is basically an alternative to #1930 (@jeffrey-xiao) ZOOKEEPER-4394 describes the issue, following is my understandings: 1. `Learner::syncWithLeader` [assumes/demands no outstanding `PROPOSAL`](https://github.com/apache/zookeeper/blob/b2ed7cdfa93b4a829225391806db919ca546a5e8/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java#L759-L772) before `NEWLEADER`. 2. But leader requires only quorum acks of `NEWLEADER` to issue outstanding `PROPOSAL`s. This means learner is possible to see uncommitted proposal on receiving `NEWLEADER`. 3. The combination of above two [breaks following up `COMMIT`](https://github.com/apache/zookeeper/blob/b2ed7cdfa93b4a829225391806db919ca546a5e8/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java#L652). Besides above, this patch reverts Zab1_0Test.testNormalFollowerRunWithDiff to prior ZOOKEEPER-2678 which I think it is a good as I expressed in [ZOOKEEPER-3023](https://issues.apache.org/jira/browse/ZOOKEEPER-3023?focusedCommentId=17516241&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17516241). -- 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: notifications-unsubscr...@zookeeper.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org