From da4213fc2aebf2b47694ee2ea67448963c16ddd5 Mon Sep 17 00:00:00 2001 From: Chuang Li <64473732+CodeCooker17@users.noreply.github.com> Date: Sun, 3 Sep 2023 11:40:09 +0800 Subject: [PATCH] [improve](spark-load) set status fail message when spark load job status is cancelled. (#20798) --- .../src/main/java/org/apache/doris/load/loadv2/LoadJob.java | 2 +- .../java/org/apache/doris/load/loadv2/SparkEtlJobHandler.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java index 2532b0d80e..2c70883d8f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java @@ -662,7 +662,7 @@ public abstract class LoadJob extends AbstractTxnStateChangeCallback implements // clean the loadingStatus loadingStatus.setState(TEtlState.CANCELLED); - + loadingStatus.setFailMsg(failMsg.getMsg()); // get load ids of all loading tasks, we will cancel their coordinator process later List loadIds = Lists.newArrayList(); for (LoadTask loadTask : idToTasks.values()) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkEtlJobHandler.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkEtlJobHandler.java index 57f0c58af7..ec3a0bbede 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkEtlJobHandler.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/SparkEtlJobHandler.java @@ -223,11 +223,13 @@ public class SparkEtlJobHandler { if (stderr.contains("doesn't exist in RM")) { LOG.warn("spark app not found. spark app id: {}, load job id: {}", appId, loadJobId); status.setState(TEtlState.CANCELLED); + status.setFailMsg(stderr); } } LOG.warn("yarn application status failed. spark app id: {}, load job id: {}, timeout: {}, msg: {}", appId, loadJobId, EXEC_CMD_TIMEOUT_MS, stderr); status.setState(TEtlState.CANCELLED); + status.setFailMsg(stderr); return status; } ApplicationReport report = new YarnApplicationReport(result.getStdout()).getReport();