Github user tillrohrmann commented on a diff in the pull request: https://github.com/apache/flink/pull/6154#discussion_r195359921 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/highavailability/nonha/embedded/EmbeddedLeaderService.java --- @@ -356,8 +357,8 @@ public void confirmLeaderSessionID(UUID leaderSessionID) { } @Override - public boolean hasLeadership() { - return isLeader; + public boolean hasLeadership(@Nonnull UUID leaderSessionId) { + return isLeader && leaderSessionId.equals(currentLeaderSessionId); } --- End diff -- In the case of the `EmbeddedLeaderService`, there is no case in which `leaderSessionId != currentLeaderSessionId` if `isLeader`, because a leader only loses leadership if the service is stopped. But this is an implementation detail which might change in the future and thus, should be guarded. I think we don't need a lock but have to make `currentLeaderSessionId` `volatile` such that we see modifications.
---