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.


---

Reply via email to