[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13397333#comment-13397333
 ] 

Flavio Junqueira commented on ZOOKEEPER-1478:
---------------------------------------------

I had a look at ZOOKEEPER-790 and if I checked it right, and this change to run 
30 times create was introduced in ZOOKEEPER-1103. 

We are just trying to check if the client is able to reconnect to the ensemble 
after a leader demotion, so I think the way I'm proposing is cleaner. I'll be 
uploading shortly a small change that will guarantee that the race I was 
referring to doesn't happen by waiting until we actually observe that the 
client has disconnected.

About the waitForServerUp statement, it doesn't look strictly necessary by the 
way we create the zookeeper object. It sounds ok to remove.
                
> Small bug in QuorumTest.testFollowersStartAfterLeader( )
> --------------------------------------------------------
>
>                 Key: ZOOKEEPER-1478
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1478
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: tests
>            Reporter: Alexander Shraer
>            Assignee: Alexander Shraer
>            Priority: Minor
>         Attachments: ZOOKEEPER-1478.patch, ZOOKEEPER-1478.patch
>
>
> The following code appears in QuorumTest.testFollowersStartAfterLeader( ):
> for (int i = 0; i < 30; i++) {
>     try {
>        zk.create("/test", "test".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
>                  CreateMode.PERSISTENT);
>        break;
>      } catch(KeeperException.ConnectionLossException e) {
>        Thread.sleep(1000);
>      }
>     // test fails if we still can't connect to the quorum after 30 seconds.
>     Assert.fail("client could not connect to reestablished quorum: giving up 
> after 30+ seconds.");
> }
> From the comment it looks like the intention was to try to reconnect 30 times 
> and only then trigger the Assert, but that's not what this does.
> After we fail to connect once and Thread.sleep is executed, Assert.fail will 
> be executed without retrying create. 

--
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

        

Reply via email to