[ https://issues.apache.org/jira/browse/FLINK-10052?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16886663#comment-16886663 ]
lamber-ken commented on FLINK-10052: ------------------------------------ [~Tison], right, it's a better way to upgrate curator dependcy to fix this ideally, but there's a problem that curator-4.x detect the version of zookeeper by test whether +org.apache.zookeeper.admin.ZooKeeperAdmin+ is in classpath or not, like bellow. {code:java} Class.forName("org.apache.admin.ZooKeeperAdmin"); {code} But flink-runtime module shades +org.apache.zookeeper+ to +org.apache.flink.shaded.zookeeper.org.apache.zookeeper+ , so it'll detect failed. I think two ways to fix this issue, First, rewrite +LeaderLatch#handleStateChange+ at flink-shaded-curator moduleflink, like [PR#9066|https://github.com/apache/flink/pull/9066]. Seconde, it also could be achievable by using Curator's LeaderSelector instead of the LeaderLatch as mentioned in issue description > Tolerate temporarily suspended ZooKeeper connections > ---------------------------------------------------- > > Key: FLINK-10052 > URL: https://issues.apache.org/jira/browse/FLINK-10052 > Project: Flink > Issue Type: Improvement > Components: Runtime / Coordination > Affects Versions: 1.4.2, 1.5.2, 1.6.0, 1.8.1 > Reporter: Till Rohrmann > Assignee: Dominik WosiĆski > Priority: Major > > This issue results from FLINK-10011 which uncovered a problem with Flink's HA > recovery and proposed the following solution to harden Flink: > The {{ZooKeeperLeaderElectionService}} uses the {{LeaderLatch}} Curator > recipe for leader election. The leader latch revokes leadership in case of a > suspended ZooKeeper connection. This can be premature in case that the system > can reconnect to ZooKeeper before its session expires. The effect of the lost > leadership is that all jobs will be canceled and directly restarted after > regaining the leadership. > Instead of directly revoking the leadership upon a SUSPENDED ZooKeeper > connection, it would be better to wait until the ZooKeeper connection is > LOST. That way we would allow the system to reconnect and not lose the > leadership. This could be achievable by using Curator's {{LeaderSelector}} > instead of the {{LeaderLatch}}. -- This message was sent by Atlassian JIRA (v7.6.14#76016)