Dian Fu created FLINK-18956: ------------------------------- Summary: 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 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)