[
https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13423210#comment-13423210
]
Henry Robinson commented on ZOOKEEPER-1521:
-------------------------------------------
Good catch. Here's what I notice in branch-3.3:
* {{Leader.java:240}} - the initial read timeout is set to {{syncLimit}} ticks,
but the first thing we wait for is an ACK from the follower saying that it has
got up-to-date, which should be subject to {{initLimit}}
* I also saw that in {{Learner.java:220}}, the connection should be established
with {{initLimit}} as the connection timeout (this is not fixed in branch-3.4).
However, because there's a retry loop, there's no guarantee that we will
connect in less than initLimit or syncLimit. So {{initLimit}} is not a hard
limit at all; but it isn't already for other reasons.
In branch-3.4:
* {{LearnerHandler.java:336}} sets the initial timeout to {{initLimit}}, but
never sets it back again after the ACK. And it should just be setting the
timeout in {{Leader.java:254}} anyhow.
> LearnerHandler initLimit/syncLimit problems specifying follower socket
> timeout limits
> -------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-1521
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1521
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Affects Versions: 3.4.3, 3.3.5, 3.5.0
> Reporter: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521_br33.patch
>
>
> branch 3.3: The leader is expecting the follower to initialize in syncLimit
> time rather than initLimit. In LearnerHandler run line 395 (branch33) we look
> for the ack from the follower with a timeout of syncLimit.
> branch 3.4+: seems like ZOOKEEPER-1136 introduced a regression while
> attempting to fix the problem. It sets the timeout as initLimit however it
> never sets the timeout to syncLimit once the ack is received.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira