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

Jordan Zimmerman commented on CURATOR-54:
-----------------------------------------

FYI - the website doc and example code has also been updated (the website 
should be regenerated when this is released)
                
> No reliable way to cancel leadership in LeaderSelector when connection fails 
> due to edge cases
> ----------------------------------------------------------------------------------------------
>
>                 Key: CURATOR-54
>                 URL: https://issues.apache.org/jira/browse/CURATOR-54
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 2.2.0-incubating
>            Reporter: Jordan Zimmerman
>            Assignee: Jordan Zimmerman
>             Fix For: 2.3.0-incubating
>
>
> From a post to user@
> "Hi,
> I'm fairly new with Zookeeper and Curator. I want to achieve a simple leader 
> election process.
> But, I ran into trouble implementing the interruption behavior. I could not 
> find a reliable way to stop the leader (withdraw from leadership).
> I think even the schoolbook example that Curator brings is flawed.
> In leader.ExampleClient:
>  @Override
>     public void stateChanged(CuratorFramework client, ConnectionState 
> newState)
>     {
>         // you MUST handle connection state changes. This WILL happen in 
> production code.
>         if ( (newState == ConnectionState.LOST) || (newState == 
> ConnectionState.SUSPENDED) )
>         {
>             if ( ourThread != null )
>             {
>                 ourThread.interrupt();
>             }
>         }
>     }
> So in case of lost leadership, the ourThread thread is interrupted. However, 
> ourThread is set in the 2nd line of the takeLeadership() method. Until then, 
> it is null.
> What happens if the connection is lost immediately after it is established, 
> and ourThread stays null? Won't it be the case that the thread will go on, 
> thinking that it is the leader, despite it being supposed to withdraw?
> Thanks,
> Arie"

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to