Browse Source

Fix task log appender will not be closed immediate after throwing exception (#14989)

3.2.1-prepare
Wenjun Ruan 12 months ago committed by GitHub
parent
commit
629fced9ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/execute/MasterTaskExecuteRunnable.java

5
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/execute/MasterTaskExecuteRunnable.java

@ -55,9 +55,10 @@ public abstract class MasterTaskExecuteRunnable implements Runnable {
protected abstract void afterExecute() throws MasterTaskExecuteException;
protected void afterThrowing(Throwable throwable) {
TaskInstanceLogHeader.printFinalizeTaskHeader();
try {
log.error("Get a exception when execute the task, will try to cancel the task", throwable);
cancelTask();
log.error("Get a exception when execute the task, canceled the task", throwable);
} catch (Exception e) {
log.error("Cancel task failed,", e);
}
@ -69,6 +70,7 @@ public abstract class MasterTaskExecuteRunnable implements Runnable {
MasterTaskExecutionContextHolder.removeTaskExecutionContext(taskExecutionContext.getTaskInstanceId());
MasterTaskExecuteRunnableHolder.removeMasterTaskExecuteRunnable(taskExecutionContext.getTaskInstanceId());
log.info("Get a exception when execute the task, removed the TaskExecutionContext");
closeLogAppender();
}
public void cancelTask() throws MasterTaskExecuteException {
@ -111,7 +113,6 @@ public abstract class MasterTaskExecuteRunnable implements Runnable {
} catch (Throwable ex) {
log.error("Task execute failed, due to meet an exception", ex);
afterThrowing(ex);
closeLogAppender();
} finally {
LogUtils.removeWorkflowAndTaskInstanceIdMDC();
LogUtils.removeTaskInstanceLogFullPathMDC();

Loading…
Cancel
Save