[
https://issues.apache.org/jira/browse/FLINK-16416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051160#comment-17051160
]
Andrey Zagrebin commented on FLINK-16416:
-----------------------------------------
[~karmagyz] From what I see, {{TaskExecutorServices#shutDown}} is called from
`TaskExecutor#onStop` which should be called in case of any graceful TM
shutdown including Akka shutdown and `TaskExecutor#onFatalError` (all
exceptions except JVM fatal errors and OutOfMemoryError). Which kind of
graceful shutdown do you mean? I assume shutdown hooks are used to release some
special resources, which are not automatically released by OS when JM process
exits, e.g. remove files.
> Shutdown the task manager gracefully in standalone mode
> -------------------------------------------------------
>
> Key: FLINK-16416
> URL: https://issues.apache.org/jira/browse/FLINK-16416
> Project: Flink
> Issue Type: Improvement
> Components: Command Line Client
> Reporter: Yangze Guo
> Priority: Major
>
> Recently, I try to add a new {{GPUManager}} to the {{TaskExecutorServices}}.
> I register the "GPUManager#close" function, in which I write some cleanup
> logic, to the {{TaskExecutorServices#shutDown}}. However, I found that the
> cleanup logic does not run as expected in standalone mode.
> After an investigation in the codebase, I found that the
> {{TaskExecutorServices#shutDown}} will be called only on a fatal error while
> we just kill the TM process in the {{flink-daemon.sh}}. However, the LOG
> shows that some services, e.g. TaskExecutorLocalStateStoresManager, did clean
> up themselves by registering {{shutdownHook}}.
> If that is the right way, then we need to register a {{shutdownHook}} for
> {{TaskExecutorServices}} as well.
> If that is not, we may find another solution to shutdown TM gracefully.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)