You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Patrick Hunt (JIRA)" <ji...@apache.org> on 2012/07/26 17:45:36 UTC
[jira] [Created] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Patrick Hunt created ZOOKEEPER-1521:
---------------------------------------
Summary: 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.3.5, 3.4.3, 3.5.0
Reporter: Patrick Hunt
Priority: Critical
Fix For: 3.3.6, 3.4.4, 3.5.0
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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Patrick Hunt (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13424487#comment-13424487 ]
Patrick Hunt commented on ZOOKEEPER-1521:
-----------------------------------------
I verified this fix by running a very large snapshot file with the unfixed code and initlimit=200 and synclimit=2 (ticktime = 2000 in all cases), which failed to allow sufficient time during the init phase. I then re-ran this using the fixed code and the quorum came up successfully.
> 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
> Assignee: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Benjamin Reed (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13423587#comment-13423587 ]
Benjamin Reed commented on ZOOKEEPER-1521:
------------------------------------------
+1 looks good. it is reasonable to do a test for this?
> 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
> Assignee: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Hudson (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13424518#comment-13424518 ]
Hudson commented on ZOOKEEPER-1521:
-----------------------------------
Integrated in ZooKeeper-trunk #1628 (See [https://builds.apache.org/job/ZooKeeper-trunk/1628/])
ZOOKEEPER-1521. LearnerHandler initLimit/syncLimit problems specifying follower socket timeout limits (phunt) (Revision 1366781)
Result = SUCCESS
phunt : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1366781
Files :
* /zookeeper/trunk/CHANGES.txt
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Leader.java
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java
> 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
> Assignee: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Patrick Hunt (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13423666#comment-13423666 ]
Patrick Hunt commented on ZOOKEEPER-1521:
-----------------------------------------
I can't see a way to do it with our current infrastructure. I'm going to verify manually. I'm also talking to my QA team about adding this to their system test regime.
> 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
> Assignee: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Henry Robinson (JIRA)" <ji...@apache.org>.
[ 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
[jira] [Updated] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Patrick Hunt (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Hunt updated ZOOKEEPER-1521:
------------------------------------
Attachment: ZOOKEEPER-1521_br34.patch
> 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.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Updated] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Patrick Hunt (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Hunt updated ZOOKEEPER-1521:
------------------------------------
Attachment: ZOOKEEPER-1521.patch
> 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.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Commented] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Hadoop QA (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13423470#comment-13423470 ]
Hadoop QA commented on ZOOKEEPER-1521:
--------------------------------------
-1 overall. Here are the results of testing the latest attachment
http://issues.apache.org/jira/secure/attachment/12538025/ZOOKEEPER-1521.patch
against trunk revision 1362660.
+1 @author. The patch does not contain any @author tags.
-1 tests included. The patch doesn't appear to include any new or modified tests.
Please justify why no new tests are needed for this patch.
Also please list what manual steps were performed to verify this patch.
+1 javadoc. The javadoc tool did not generate any warning messages.
+1 javac. The applied patch does not increase the total number of javac compiler warnings.
+1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.
+1 release audit. The applied patch does not increase the total number of release audit warnings.
+1 core tests. The patch passed core unit tests.
+1 contrib tests. The patch passed contrib unit tests.
Test results: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1144//testReport/
Findbugs warnings: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1144//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1144//console
This message is automatically generated.
> 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
> Assignee: Patrick Hunt
> Priority: Critical
> Fix For: 3.3.6, 3.4.4, 3.5.0
>
> Attachments: ZOOKEEPER-1521.patch, ZOOKEEPER-1521_br33.patch, ZOOKEEPER-1521_br34.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
[jira] [Updated] (ZOOKEEPER-1521) LearnerHandler
initLimit/syncLimit problems specifying follower socket timeout limits
Posted by "Patrick Hunt (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick Hunt updated ZOOKEEPER-1521:
------------------------------------
Attachment: ZOOKEEPER-1521_br33.patch
> 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