You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Mahadev konar (JIRA)" <ji...@apache.org> on 2010/07/28 17:57:16 UTC
[jira] Issue Comment Edited: (ZOOKEEPER-790) Last processed zxid
set prematurely while establishing leadership
[ https://issues.apache.org/jira/browse/ZOOKEEPER-790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893219#action_12893219 ]
Mahadev konar edited comment on ZOOKEEPER-790 at 7/28/10 11:54 AM:
-------------------------------------------------------------------
flavio, the patch looks good. Any reason you have this code in learnerhandler?
{code}
@@ -475,6 +497,7 @@
} catch (IOException e) {
LOG.warn("Ignoring unexpected exception during socket close", e);
}
+ this.interrupt();
leader.removeLearnerHandler(this);
}
{code}
The interrupt? Why is this necessary?
was (Author: mahadev):
flavio, the patch looks good. Any reason you have this code in learnerhandler?
{quote}
@@ -475,6 +497,7 @@
} catch (IOException e) {
LOG.warn("Ignoring unexpected exception during socket close", e);
}
+ this.interrupt();
leader.removeLearnerHandler(this);
}
{quote}
The interrupt? Why is this necessary?
> 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 Junqueira
> Assignee: Flavio Junqueira
> Priority: Blocker
> Fix For: 3.3.2, 3.4.0
>
> Attachments: ZOOKEEPER-790-3.3.patch, ZOOKEEPER-790-3.3.patch, ZOOKEEPER-790-follower-request-NPE.log, ZOOKEEPER-790-test.patch, ZOOKEEPER-790.patch, ZOOKEEPER-790.patch, ZOOKEEPER-790.patch, ZOOKEEPER-790.patch, ZOOKEEPER-790.patch, ZOOKEEPER-790.travis.log.bz2, ZOOKEEPER-790.v2.patch, ZOOKEEPER-790.v2.patch
>
>
> 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.