[ https://issues.apache.org/jira/browse/FLINK-22535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17335645#comment-17335645 ]
Yun Gao edited comment on FLINK-22535 at 4/29/21, 4:25 PM: ----------------------------------------------------------- Also another related possible issue is that if StreamTask#invoke throws exception, the _cleanUpInvoke_ might be called twice, but we do not has a flag to skip the second execution. Maybe we could also move cleanUpInvoke to finally. was (Author: gaoyunhaii): Also another related possible issue is that if StreamTask#invoke throws exception, the _cleanUpInvoke_ might be called twice, but we do not has a flag to skip the second execution. > Resource leak would happen if exception thrown during > AbstractInvokable#restore of task life > -------------------------------------------------------------------------------------------- > > Key: FLINK-22535 > URL: https://issues.apache.org/jira/browse/FLINK-22535 > Project: Flink > Issue Type: Bug > Components: Runtime / Task > Affects Versions: 1.13.0 > Reporter: Yun Tang > Priority: Critical > Fix For: 1.13.1 > > > FLINK-17012 introduced new initialization phase such as > {{AbstractInvokable.restore}}, however, if > [invokable.restore()|https://github.com/apache/flink/blob/79a521e08df550d96f97bb6915191d8496bb29ea/flink-runtime/src/main/java/org/apache/flink/runtime/taskmanager/Task.java#L754-L759] > throws exception out, no more {{StreamTask#cleanUpInvoke}} would be called, > leading to resource leak. > We internally leveraged another way to use managed memory by registering > specific operator identifier in memory manager, forgetting to call the stream > task cleanup would let stream operator not be disposed and we have to face > critical resource leak. -- This message was sent by Atlassian Jira (v8.3.4#803005)