[
https://issues.apache.org/jira/browse/ZOOKEEPER-1131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069191#comment-13069191
]
Alexander Shraer commented on ZOOKEEPER-1131:
---------------------------------------------
if I'm not mistaken, once you reach Leader.lead() everything is ok because
Leader.lead() calls zk.loadData().
The problem is that the server might not be elected as the new leader because
during leader election it doesn't tell others about proposals it received -
only about the commits it received so the leader is the one who received most
commits and not most proposals. This is the bug.
> 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