Flavio Paiva Junqueira updated ZOOKEEPER-790:

    Attachment: ZOOKEEPER-790.patch

This patch is very simple: it moves two function calls such that a leader only 
starts up and sets the the last processed zxid after it has a quorum of 
supporters. It also includes a unit test. I had to make a few modifications 
here and there to be able to write this test. I tried to minimize changes as 
much as possible.

> Last processed zxid set prematurely while establishing leadership
> -----------------------------------------------------------------
>                 Key: ZOOKEEPER-790
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-790
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: quorum
>    Affects Versions: 3.3.1
>            Reporter: Flavio Paiva Junqueira
>            Assignee: Flavio Paiva Junqueira
>            Priority: Blocker
>             Fix For: 3.3.2, 3.4.0
>         Attachments: ZOOKEEPER-790.patch, ZOOKEEPER-790.patch, 
> ZOOKEEPER-790.patch, ZOOKEEPER-790.travis.log.bz2
> The leader code is setting the last processed zxid to the first of the new 
> epoch even before connecting to a quorum of followers. Because the leader 
> code sets this value before connecting to a quorum of followers 
> (Leader.java:281) and the follower code throws an IOException 
> (Follower.java:73) if the leader epoch is smaller, we have that when the 
> false leader drops leadership and becomes a follower, it finds a smaller 
> epoch and kills itself.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to