Flavio Paiva Junqueira updated ZOOKEEPER-127:

    Attachment: ZOOKEEPER-127.patch

This new patch also addresses a race condition in FastLeaderElection. Without 
this patch, it is possible that one of the worker threads reads the value of 
either proposedLeader, proposedZxid, or logicalclock in an inconsistent 
fashion. I have created two synchronized methods and added one synchronized 
block to have threads reading consistent values.

I have also addressed the points that Austin pointed out. Thanks, Austin!

> Use of non-standard election ports in config breaks services
> ------------------------------------------------------------
>                 Key: ZOOKEEPER-127
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-127
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: quorum
>    Affects Versions: 3.0.0
>            Reporter: Mark Harwood
>            Assignee: Flavio Paiva Junqueira
>            Priority: Minor
>             Fix For: 3.0.0
>         Attachments: mhPortChanges.patch, ZOOKEEPER-127.patch, 
> ZOOKEEPER-127.patch, ZOOKEEPER-127.patch, ZOOKEEPER-127.patch
> In QuorumCnxManager.toSend there is a call to create a connection as follows:
>     channel = SocketChannel.open(new InetSocketAddress(addr, port));
> Unfortunately "addr" is the ip address of a remote server while "port" is the 
> electionPort of *this* server.
> As an example, given this configuration (taken from my zoo.cfg)
>   server.1=
>   server.2=
>   server.3=
> Server 3 was observed trying to make a connection to host on port 
> 2883 and obviously failing.
> In tests where all machines use the same electionPort this bug would not 
> manifest itself.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to