[ 
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)

Reply via email to