From 92e847244da95b1a5e4b57037bb42722b31d5439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Osipiuk?= Date: Tue, 5 Dec 2023 09:42:29 +0100 Subject: [PATCH] Ensure taskInfo finalized on permanent worker failure 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. --- .../java/io/trino/server/remotetask/HttpRemoteTask.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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)); + } } }