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

lamber-ken edited comment on FLINK-10052 at 7/17/19 4:06 AM:
-------------------------------------------------------------

[~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].
Second, it also could be achievable by using Curator's LeaderSelector instead 
of the LeaderLatch as mentioned in issue description 







was (Author: lamber-ken):
[~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)

Reply via email to