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

shixiaoxiao resolved CURATOR-652.
---------------------------------
    Resolution: Fixed

> double-leader
> -------------
>
>                 Key: CURATOR-652
>                 URL: https://issues.apache.org/jira/browse/CURATOR-652
>             Project: Apache Curator
>          Issue Type: Bug
>    Affects Versions: 5.1.0, 5.2.0, 5.3.0
>            Reporter: shixiaoxiao
>            Assignee: Jordan Zimmerman
>            Priority: Critical
>             Fix For: awaiting-response
>
>
> When I use the LeaderLatch to select leader, there is a double-leader 
> phenomenon.
> The timeline is as follows:
> 1. The zk cluster switch leader node bescause of zxid overflow. The cluster 
> is unavailable to the outside world
> 2. A client(not leader befor zxid overflow) and B client(is leader before 
> zxid overflow) enter the suspend state, B client set its leader status to 
> false
> 3. The zk cluster complete the leader node election and the cluster back to 
> normal
> 4. A client enter the reconnect state and call the reset function, set its 
> leader status to false.
> 5. B client enter the reconnect state, call the reset function. set its 
> leader status to false. Delete its old path.
> 6. A client receive preNodeDeleteEvent. Then getChildren from zkServer. Find 
> itself is the smallest number and set itself as a leader.
> 7. B client create a new temporary node and then getChildren from zkServer. 
> Find itself not the node with the smallest serial number and listen to the 
> previous node delete event.
> 8. A client delete its old path.
> 9. B client receive the preNodeDeleteEvent. then getchildren from zkServer. 
> Find itself is the smallest sequence number and then set itself as a leader
> 10. A client create a new temporary node and then getChildren from zkServer. 
> Find itself not the node with the smallest serial number and listen to the 
> previous node delete event. but it doesn't set itself as a non-leader state. 
> because of the sixth step operation, A still is leader state now.
> 11. now A client and B client are the leader at the same time



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to