[ https://issues.apache.org/jira/browse/ZOOKEEPER-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069188#comment-13069188 ]
Yang Yang commented on ZOOKEEPER-1131: -------------------------------------- I'm actually confused after reading the bug description more closely: it says "B will be elected since it has seen more commits ", isn't the rule to elect whoever has the most SEEN proposals (instead of COMMITTED proposals) ? this is from the ZAB paper: "If the leader election protocol guarantees that the new leader has the highest proposal number in a quorum of servers, a newly elected leader will also have all committed messages. " > Transactions can be dropped because leader election uses last committed zxid > instead of last acknowledged/received zxid > ----------------------------------------------------------------------------------------------------------------------- > > Key: ZOOKEEPER-1131 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1131 > Project: ZooKeeper > Issue Type: Bug > Components: leaderElection, server > Affects Versions: 3.4.0 > Reporter: Alexander Shraer > > Suppose we have 3 servers - A, B, C. > - A is the leader and it sends 2 proposals. > - Everyone ack the first proposal, only A and C receive and ack the second > proposal. > - A commits the first proposal, and A and B see the commit. > - A commits the second proposal, but fails before anyone else sees the commit. > - B and C start leader election. > - Since servers propose their last committed zxid in leader election, and not > their last received / acked zxid (this is not being tracked, AFAIK), B will > be elected as leader since it has seen more commits than C. > - The last transaction is lost forever even though it has been acked by a > majority. > Notice that if C reboots before starting the leader election, this problem > doesn't happen since it "locally commits" the second proposal updating its > last committed zxid. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira