[hotfix] Don't fail LeaderContender and Listener when closing EmbeddedLeaderService
Project: http://git-wip-us.apache.org/repos/asf/flink/repo Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/6868cacd Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/6868cacd Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/6868cacd Branch: refs/heads/master Commit: 6868cacdf309404a553831409734c2f65f16587c Parents: 1897e23 Author: Till Rohrmann <[email protected]> Authored: Thu Feb 15 18:14:55 2018 +0100 Committer: Till Rohrmann <[email protected]> Committed: Fri Feb 23 18:22:07 2018 +0100 ---------------------------------------------------------------------- .../nonha/embedded/EmbeddedLeaderService.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flink/blob/6868cacd/flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java ---------------------------------------------------------------------- diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java b/flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java index 5eb4375..ce964a3 100644 --- a/flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java +++ b/flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java @@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory; import javax.annotation.Nullable; import javax.annotation.concurrent.GuardedBy; + import java.util.HashSet; import java.util.Set; import java.util.UUID; @@ -38,7 +39,7 @@ import static org.apache.flink.util.Preconditions.checkState; /** * A simple leader election service, which selects a leader among contenders and notifies listeners. - * + * * <p>An election service for contenders can be created via {@link #createLeaderElectionService()}, * a listener service for leader observers can be created via {@link #createLeaderRetrievalService()}. */ @@ -54,19 +55,19 @@ public class EmbeddedLeaderService { private final Set<EmbeddedLeaderRetrievalService> listeners; - /** proposed leader, which has been notified of leadership grant, but has not confirmed */ + /** proposed leader, which has been notified of leadership grant, but has not confirmed. */ private EmbeddedLeaderElectionService currentLeaderProposed; - /** actual leader that has confirmed leadership and of which listeners have been notified */ + /** actual leader that has confirmed leadership and of which listeners have been notified. */ private EmbeddedLeaderElectionService currentLeaderConfirmed; - /** fencing UID for the current leader (or proposed leader) */ + /** fencing UID for the current leader (or proposed leader). */ private UUID currentLeaderSessionId; - /** the cached address of the current leader */ + /** the cached address of the current leader. */ private String currentLeaderAddress; - /** flag marking the service as terminated */ + /** flag marking the service as terminated. */ private boolean shutdown; // ------------------------------------------------------------------------ @@ -83,7 +84,7 @@ public class EmbeddedLeaderService { /** * Shuts down this leader election service. - * + * * <p>This method does not perform a clean revocation of the leader status and * no notification to any leader listeners. It simply notifies all contenders * and listeners that the service is no longer available. @@ -364,7 +365,7 @@ public class EmbeddedLeaderService { if (running) { running = false; isLeader = false; - contender.handleError(cause); + contender.revokeLeadership(); contender = null; } } @@ -392,7 +393,6 @@ public class EmbeddedLeaderService { public void shutdown(Exception cause) { if (running) { running = false; - listener.handleError(cause); listener = null; } }
