[ https://issues.apache.org/jira/browse/FLINK-18956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dian Fu closed FLINK-18956. --------------------------- Resolution: Fixed master: 14665dd468a638b6d6c5f5f241455c8d81825b76 release-1.11: 792855277be38fafed27a7aaa7c98628ea256850 > StreamTask.invoke should catch Throwable instead of Exception > ------------------------------------------------------------- > > Key: FLINK-18956 > URL: https://issues.apache.org/jira/browse/FLINK-18956 > Project: Flink > Issue Type: Bug > Components: Runtime / Task > Affects Versions: 1.11.0 > Reporter: Dian Fu > Assignee: Dian Fu > Priority: Major > Labels: pull-request-available > Fix For: 1.12.0, 1.11.2 > > > In StreamTask.invoke, we should catch Throwable. Otherwise, cleanUpInvoke() > will not be called if Error is thrown: > {code} > @Override > public final void invoke() throws Exception { > try { > beforeInvoke(); > // final check to exit early before starting to run > if (canceled) { > throw new CancelTaskException(); > } > // let the task do its work > runMailboxLoop(); > // if this left the run() method cleanly despite the > fact that this was canceled, > // make sure the "clean shutdown" is not attempted > if (canceled) { > throw new CancelTaskException(); > } > afterInvoke(); > } > catch (Exception invokeException) { > failing = !canceled; > try { > cleanUpInvoke(); > } > // TODO: investigate why Throwable instead of Exception > is used here. > catch (Throwable cleanUpException) { > Throwable throwable = > ExceptionUtils.firstOrSuppressed(cleanUpException, invokeException); > throw (throwable instanceof Exception ? > (Exception) throwable : new Exception(throwable)); > } > throw invokeException; > } > cleanUpInvoke(); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)