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

Kuradeon updated CURATOR-724:
-----------------------------
    Description: 
After [https://github.com/apache/curator/pull/430], the LeaderLatch will call 
getChildren() instead of reset() to recover the leader election. But 
getChildren() triggers setNode() via callback 
client.getChildren().inBackground(callback).forPath(ZKPaths.makePath(latchPath, 
null)). If the leaderPath doesn't exist after zk recovered, then the 
LeaderLatch node wouldn't never recovered.

There is a temporary solution, adding a ConnectionStateListener before the 
LeaderLatch internal ConnectionStateListener, which to create the leaderPath 
node manually. Then this issue will be fixed.

  was:https://github.com/apache/curator/pull/430


> LeaderLatch isn't able to recover after zk recover/leader path missing.
> -----------------------------------------------------------------------
>
>                 Key: CURATOR-724
>                 URL: https://issues.apache.org/jira/browse/CURATOR-724
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Recipes
>    Affects Versions: 5.5.0, 5.6.0, 5.7.0, 5.7.1
>            Reporter: Kuradeon
>            Priority: Major
>
> After [https://github.com/apache/curator/pull/430], the LeaderLatch will call 
> getChildren() instead of reset() to recover the leader election. But 
> getChildren() triggers setNode() via callback 
> client.getChildren().inBackground(callback).forPath(ZKPaths.makePath(latchPath,
>  null)). If the leaderPath doesn't exist after zk recovered, then the 
> LeaderLatch node wouldn't never recovered.
> There is a temporary solution, adding a ConnectionStateListener before the 
> LeaderLatch internal ConnectionStateListener, which to create the leaderPath 
> node manually. Then this issue will be fixed.



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

Reply via email to