[ https://issues.apache.org/jira/browse/ZOOKEEPER-4681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
krystal he updated ZOOKEEPER-4681: ---------------------------------- Attachment: (was: zookeeper-X-violation.patch) > Uncommitted requests have been executed > ---------------------------------------- > > Key: ZOOKEEPER-4681 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4681 > Project: ZooKeeper > Issue Type: Bug > Components: quorum > Affects Versions: 3.5.8 > Reporter: krystal he > Priority: Major > > Using a [tool|https://github.com/kry4tall/CC-ZOO358] that I modifyed from > [Filip Niksic's zootester|https://github.com/fniksic/zootester] for testing > ZooKeeper, I discovered the following scenario which causes uncommitted > requests to be executed. > Zab protocol has three rounds: PROPOSE, ACK, and COMMIT. My tool can isolate > the PROPOSAL, ACK and COMMIT messages and collect the values of some > variables of each server at the end of each round. > Initially, start an ensemble with 3 servers called A, B, and C, and > initialize 2 znodes called /key0 and /key1, and set them to 0 and 1 > respectively. > # Request to set /key0 to 1000 on 3 servers. > # Isolate the ack messages of 2 servers. > # Request to set /key0 to 1001 on 3 servers. > # Stop all servers and restart them. > # Check the contents of /key0 and /key1. Surprisingly, both requests > worked,reading /key0 == 1000, /key1 == 1001. > -- This message was sent by Atlassian Jira (v8.20.10#820010)