[ https://issues.apache.org/jira/browse/FLINK-2646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14742379#comment-14742379 ]
chenliang commented on FLINK-2646: ---------------------------------- 1.Can you help me to quickly understand "The runtime is the changed to call close() as part of the regular execution and closeAfterFailure() in case of an irregular exit.". 2.Just i checked source code, the ChainedAllReduceDriver(one of runtime Driver) already have cancelTask() method for irregular exit. @Override public void closeTask() throws Exception { RegularPactTask.closeUserCode(this.reducer); } //chenliang613 remark: "RegularPactTask.closeUserCode(this.reducer)" also will invoke "FunctionUtils.closeFunction(this.reducer)" @Override public void cancelTask() { try { FunctionUtils.closeFunction(this.reducer); } catch (Throwable t) { } } > Rich functions should provide a method "closeAfterFailure()" > ------------------------------------------------------------ > > Key: FLINK-2646 > URL: https://issues.apache.org/jira/browse/FLINK-2646 > Project: Flink > Issue Type: Improvement > Components: Core > Affects Versions: 0.10 > Reporter: Stephan Ewen > Assignee: chenliang > Fix For: 0.10 > > > Right now, the {{close()}} method of rich functions is invoked in case of > proper completion, and in case of canceling in case of error (to allow for > cleanup). > In certain cases, the user function needs to know why it is closed, whether > the task completed in a regular fashion, or was canceled/failed. > I suggest to add a method {{closeAfterFailure()}} to the {{RichFunction}}. By > default, this method calls {{close()}}. The runtime is the changed to call > {{close()}} as part of the regular execution and {{closeAfterFailure()}} in > case of an irregular exit. > Because by default all cases call {{close()}} the change would not be API > breaking. -- This message was sent by Atlassian JIRA (v6.3.4#6332)