diff --git a/core/trino-main/src/main/java/io/trino/server/remotetask/HttpRemoteTask.java b/core/trino-main/src/main/java/io/trino/server/remotetask/HttpRemoteTask.java index 371f83e67d31..1bfbfaf5919d 100644 --- a/core/trino-main/src/main/java/io/trino/server/remotetask/HttpRemoteTask.java +++ b/core/trino-main/src/main/java/io/trino/server/remotetask/HttpRemoteTask.java @@ -1057,6 +1057,14 @@ private synchronized void fatalUnacknowledgedFailure(Throwable cause) taskStatusFetcher.updateTaskStatus(taskStatus); } } + else { + // Even though state in taskStatus is Done already it could not be the case for task info. + // We could have received valid response from taskStatusFetcher just before the worker went + // down, but taskInfoFetcher still holds old state. + // Update taskInfo so task is not stuck in FTE execution mode which depends on final task info + // being delivered. + updateTaskInfo(getTaskInfo().withTaskStatus(taskStatus)); + } } }