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

Matthias Pohl commented on FLINK-29396:
---------------------------------------

I guess, you have a point here. Initially, I thought that there's a message 
back from the {{ResourceManager}} to the {{JobMaster}} missing. That would then 
trigger the shutdown of the {{JobMaster}} and, as a consequence, trigger the 
stopping of the corresponding {{JobMasterServiceLeadershipRunner}} (in 
[JobMasterServiceLeadershipRunner:126|https://github.com/apache/flink/blob/e8a91fd8428e417c63b299392a84f7df9d10ddb8/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMasterServiceLeadershipRunner.java#L126]).
 But this message is actually send in 
[ResourceManager#closeJobManagerConnection:1072|https://github.com/apache/flink/blob/0263b55288be7b569f56dd42a94c5e48bcc1607b/flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManager.java#L1072]

Essentially, we would have to instantiate a {{CompletableFuture}} in 
[JobMaster#stopExecution:1022|https://github.com/apache/flink/blob/b7dd42617a46fcecfffbea3409391e204a40b9b1/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMaster.java#L1022],
 compose it with the {{terminationFuture}} there and let this future be 
completed in 
[JobMaster#disconnectResourceManager|https://github.com/apache/flink/blob/b7dd42617a46fcecfffbea3409391e204a40b9b1/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMaster.java#L817].
 That will make the JobMaster shutdown process proceed after we got the 
confirmation from the {{ResourceManager}} that the disconnect succeeded. WDYT?

> Race condition in JobMaster shutdown can leak resource requirements
> -------------------------------------------------------------------
>
>                 Key: FLINK-29396
>                 URL: https://issues.apache.org/jira/browse/FLINK-29396
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Coordination
>    Affects Versions: 1.15.0
>            Reporter: Chesnay Schepler
>            Priority: Blocker
>
> When a JobMaster is stopped it
> a) sends a message to the RM informing it of the final job status
> b) removes itself as the leader.
> Once the JM loses leadership the RM is also informed about that.
> With that we have 2 messages being sent to the RM at about the same time.
> If the shutdown notifications arrives first (and job is in a terminal state) 
> we wipe the resource requirements, and the leader loss notification is 
> effectively ignored.
> If the leader loss notification arrives first we keep the resource 
> requirements, assuming that another JM will pick the job up later on, and the 
> shutdown notification will be ignored.
> This can cause a session cluster to essentially do nothing until the job 
> timeout is triggered due to no leader being present (default 5 minutes).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to