You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Alexander Shraer (Created) (JIRA)" <ji...@apache.org> on 2012/01/10 00:05:39 UTC
[jira] [Created] (ZOOKEEPER-1357) Zab1_0Test uses hard-wired port
numbers. Specifically, it uses the same port for leader in two different
tests. The second test periodically fails complaining that the port is
still in use.
Zab1_0Test uses hard-wired port numbers. Specifically, it uses the same port for leader in two different tests. The second test periodically fails complaining that the port is still in use.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: ZOOKEEPER-1357
URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1357
Project: ZooKeeper
Issue Type: Bug
Reporter: Alexander Shraer
Priority: Minor
Attachments: reconfig-8-jan.patch
Here's what I get:
Testcase: testLeaderInConnectingFollowers took 34.117 sec
Testcase: testLastAcceptedEpoch took 0.047 sec <----- new test added in ZK-1343
Testcase: testLeaderInElectingFollowers took 0.004 sec
Caused an ERROR
Address already in use
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
at org.apache.zookeeper.server.quorum.Leader.<init>(Leader.java:220)
at org.apache.zookeeper.server.quorum.Zab1_0Test.createLeader(Zab1_0Test.java:711)
at org.apache.zookeeper.server.quorum.Zab1_0Test.testLeaderInElectingFollowers(Zab1_0Test.java:225)
Testcase: testNormalFollowerRun took 29.128 sec
Testcase: testNormalRun took 25.158 sec
Testcase: testLeaderBehind took 25.148 sec
Testcase: testAbandonBeforeACKEpoch took 34.029 sec
My guess is that testLastAcceptedEpoch doesn't properly close the connection before testLeaderInElectingFollowers starts.
I propose to add
if (leadThread != null) {
leadThread.interrupt();
leadThread.join();
}
to the test.
In addition, I propose to change the hard-wired ports in Zab1_0Test to use Portassignment.unique() as done in other tests. If I understand correctly the static counter used in unique() to assign ports is initialized once per test file, so it would also prevent the problem I'm seeing here of two tests in the same file trying to use the same port.
The error can be reproduced using the attached patch (for some reason I don't see the problem in the trunk).
--
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-1357) Zab1_0Test uses hard-wired port
numbers. Specifically, it uses the same port for leader in two different
tests. The second test periodically fails complaining that the port is
still in use.
Posted by "Alexander Shraer (Updated) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1357?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Shraer updated ZOOKEEPER-1357:
----------------------------------------
Attachment: reconfig-8-jan.patch
> Zab1_0Test uses hard-wired port numbers. Specifically, it uses the same port for leader in two different tests. The second test periodically fails complaining that the port is still in use.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ZOOKEEPER-1357
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1357
> Project: ZooKeeper
> Issue Type: Bug
> Reporter: Alexander Shraer
> Priority: Minor
> Attachments: reconfig-8-jan.patch
>
>
> Here's what I get:
> Testcase: testLeaderInConnectingFollowers took 34.117 sec
> Testcase: testLastAcceptedEpoch took 0.047 sec <----- new test added in ZK-1343
> Testcase: testLeaderInElectingFollowers took 0.004 sec
> Caused an ERROR
> Address already in use
> java.net.BindException: Address already in use
> at java.net.PlainSocketImpl.socketBind(Native Method)
> at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
> at java.net.ServerSocket.bind(ServerSocket.java:328)
> at java.net.ServerSocket.<init>(ServerSocket.java:194)
> at java.net.ServerSocket.<init>(ServerSocket.java:106)
> at org.apache.zookeeper.server.quorum.Leader.<init>(Leader.java:220)
> at org.apache.zookeeper.server.quorum.Zab1_0Test.createLeader(Zab1_0Test.java:711)
> at org.apache.zookeeper.server.quorum.Zab1_0Test.testLeaderInElectingFollowers(Zab1_0Test.java:225)
> Testcase: testNormalFollowerRun took 29.128 sec
> Testcase: testNormalRun took 25.158 sec
> Testcase: testLeaderBehind took 25.148 sec
> Testcase: testAbandonBeforeACKEpoch took 34.029 sec
> My guess is that testLastAcceptedEpoch doesn't properly close the connection before testLeaderInElectingFollowers starts.
> I propose to add
> if (leadThread != null) {
> leadThread.interrupt();
> leadThread.join();
> }
> to the test.
> In addition, I propose to change the hard-wired ports in Zab1_0Test to use Portassignment.unique() as done in other tests. If I understand correctly the static counter used in unique() to assign ports is initialized once per test file, so it would also prevent the problem I'm seeing here of two tests in the same file trying to use the same port.
> The error can be reproduced using the attached patch (for some reason I don't see the problem in the trunk).
--
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