From c0cbb2362c455785d25a9402e306ab6fc1e2a70e Mon Sep 17 00:00:00 2001 From: Siyang Tang <82279870+TangSiyang2001@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:51:06 +0800 Subject: [PATCH] [enhancement](schema-change) Record detailed fail reason for schema change tasks (#39351) (#39501) ## Proposed changes Expose the error msg from BE as the real fail reason recorded for schema change tasks. To avoid too much memory usage, we just pick one among all to record. --- .../main/java/org/apache/doris/alter/SchemaChangeJobV2.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java index 2bcb33adbc..f11eab2d67 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java +++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java @@ -516,7 +516,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 { if (task.getFailedTimes() > 0) { task.setFinished(true); AgentTaskQueue.removeTask(task.getBackendId(), TTaskType.ALTER, task.getSignature()); - LOG.warn("schema change task failed: " + task.getErrorMsg()); + LOG.warn("schema change task failed: {}", task.getErrorMsg()); List failedBackends = failedTabletBackends.get(task.getTabletId()); if (failedBackends == null) { failedBackends = Lists.newArrayList(); @@ -527,8 +527,8 @@ public class SchemaChangeJobV2 extends AlterJobV2 { .getReplicaAllocation(task.getPartitionId()).getTotalReplicaNum(); int failedTaskCount = failedBackends.size(); if (expectSucceedTaskNum - failedTaskCount < expectSucceedTaskNum / 2 + 1) { - throw new AlterCancelException("schema change tasks failed on same tablet reach threshold " - + failedTaskCount); + throw new AlterCancelException( + String.format("schema change tasks failed, error reason: %s", task.getErrorMsg())); } } }