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

Yun Gao commented on FLINK-22535:
---------------------------------

Hi [~akalashnikov] sorry I think if there is always the re-thrown, there should 
be still problems since that if the invoke() throws exception and enter the 
catch block, then the try block throws the second exception (like in the 
cancelTask() method), then cleanupInvoke() seems would not be called before 
re-thrown the exception.

> 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