[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jeremy Stribling updated ZOOKEEPER-1842:
----------------------------------------

    Attachment: ZOOKEEPER-1842.patch

> Election listening thread not shutdown for leaders or followers
> ---------------------------------------------------------------
>
>                 Key: ZOOKEEPER-1842
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1842
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: quorum
>         Environment: Linux, ZK trunk
>            Reporter: Jeremy Stribling
>         Attachments: ZOOKEEPER-1842.patch
>
>
> When I was testing the patch for 
> https://issues.apache.org/jira/browse/ZOOKEEPER-1691, the test included with 
> that patch was failing for me.  The problem happened when the tests shuts 
> down some followers and then attempts to bring them back up:
> {quote}
> 2013-12-13 17:31:03,976 [myid:1] - INFO 
> [QuorumPeer[myid=1]/127.0.0.1:11227:Follower@194] - shutdown called
> java.lang.Exception: shutdown Follower
>         at 
> org.apache.zookeeper.server.quorum.Follower.shutdown(Follower.java:194)
>         at 
> org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:971)
> ...
> 2013-12-13 17:31:03,992 [myid:1] - INFO 
> [QuorumPeerListener:QuorumCnxManager$Listener@544] - My election bind port: 
> localhost/127.0.0.1:11229
> 2013-12-13 17:31:03,992 [myid:1] - ERROR 
> [localhost/127.0.0.1:11229:QuorumCnxManager$Listener@557] - Exception while 
> listening
> java.net.BindException: Address already in use
>         at java.net.PlainSocketImpl.socketBind(Native Method)
>         at 
> java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
>         at java.net.ServerSocket.bind(ServerSocket.java:376)
>         at java.net.ServerSocket.bind(ServerSocket.java:330)
>         at 
> org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener.run(QuorumCnxManager.java:546)
>  
> {quote}
> The problem appears to be that the when follower.shutdown() is called in 
> QuorumPeer.run(), the election algorithm is never shut down, so when the node 
> restarts it can't bind back to the same port.
> I will upload a patch that calls shutdown() for both the leader and the 
> follower in this case, but I'm not positive its the right place or fix for 
> this issue, so feedback would be appreciated.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to