Martijn Visser created FLINK-41059:
--------------------------------------
Summary: FineGrainedSlotManager schedules requirement checks into
the main thread after suspend()
Key: FLINK-41059
URL: https://issues.apache.org/jira/browse/FLINK-41059
Project: Flink
Issue Type: Technical Debt
Components: Runtime / Coordination
Affects Versions: 2.4.0
Reporter: Martijn Visser
Assignee: Martijn Visser
When {{suspend()}} is called, the one-shot check that
{{FineGrainedSlotManager#checkResourceRequirementsWithDelay}} scheduled on the
RPC service's scheduled executor is never cancelled and still calls
{{mainThreadExecutor.execute}} when the delay fires. The check returns on
{{!started}}, and in the ResourceManager the main thread executor is the RPC
gateway, so a late check only ends as a dead letter. Chesnay described this in
https://issues.apache.org/jira/browse/FLINK-34427?focusedCommentId=17816969&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17816969.
The fork crash on that ticket has a different cause, the test harness shutting
its executor down under a running check, and is fixed by
https://github.com/apache/flink/pull/29533.
{{suspend()}} should cancel the pending check, complete or clear
{{requirementsCheckFuture}} so that a later {{start()}} can schedule again, and
not schedule into the main thread once the slot manager is no longer started.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)