This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-unstable in repository https://gitbox.apache.org/repos/asf/doris.git
commit 5033755fd3254f08c4b186d1468902de036a7cf1 Author: Mingyu Chen <morning...@163.com> AuthorDate: Thu Dec 1 14:58:05 2022 +0800 [improvement](multi-catalog) return root cause of exception (#14708) --- .../src/main/java/org/apache/doris/common/util/Util.java | 10 ++++++++++ .../java/org/apache/doris/datasource/ExternalSchemaCache.java | 4 +++- .../org/apache/doris/planner/external/HiveScanProvider.java | 5 ++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java index 7b468d7a94..6d14fc6137 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/Util.java @@ -556,4 +556,14 @@ public class Util { logger.warn(msg, e); throw new RuntimeException(msg, e); } + + public static String getRootCauseMessage(Throwable t) { + String rootCause = "unknown"; + Throwable p = t; + while (p != null) { + rootCause = p.getClass().getName() + ": " + p.getMessage(); + p = p.getCause(); + } + return rootCause; + } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalSchemaCache.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalSchemaCache.java index 1e4800ee81..a2b734e144 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalSchemaCache.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalSchemaCache.java @@ -19,6 +19,7 @@ package org.apache.doris.datasource; import org.apache.doris.catalog.Column; import org.apache.doris.common.Config; +import org.apache.doris.common.util.Util; import org.apache.doris.metric.GaugeMetric; import org.apache.doris.metric.Metric; import org.apache.doris.metric.MetricLabel; @@ -89,7 +90,8 @@ public class ExternalSchemaCache { try { return schemaCache.get(key); } catch (ExecutionException e) { - throw new CacheException("failed to get schema for %s in catalog %s", e, key, catalog.getName()); + throw new CacheException("failed to get schema for %s in catalog %s. err: %s", + e, key, catalog.getName(), Util.getRootCauseMessage(e)); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/external/HiveScanProvider.java b/fe/fe-core/src/main/java/org/apache/doris/planner/external/HiveScanProvider.java index e257f96359..0ee3db195c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/external/HiveScanProvider.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/external/HiveScanProvider.java @@ -33,6 +33,7 @@ import org.apache.doris.common.DdlException; import org.apache.doris.common.FeConstants; import org.apache.doris.common.MetaNotFoundException; import org.apache.doris.common.UserException; +import org.apache.doris.common.util.Util; import org.apache.doris.datasource.HMSExternalCatalog; import org.apache.doris.datasource.hive.HiveMetaStoreCache; import org.apache.doris.datasource.hive.HiveMetaStoreCache.HivePartitionValues; @@ -188,7 +189,9 @@ public class HiveScanProvider extends HMSTableScanProvider { return allFiles; } catch (Throwable t) { LOG.warn("get file split failed for table: {}", hmsTable.getName(), t); - throw new UserException("get file split failed for table: " + hmsTable.getName(), t); + throw new UserException( + "get file split failed for table: " + hmsTable.getName() + ", err: " + Util.getRootCauseMessage(t), + t); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org