当前版本2.1.8
- 问题现象:当前有3个fe(160,161[master],162)节点,查询打到160时会报错。其他两个节点正常,目前通过nginx把请求打到161,162节点上暂时能用。
- 报错日志
报错sql都是查的supervoc_for_ges这个catalog
2025-04-14 11:12:07,662 WARN (mysql-nio-pool-19|423) [StmtExecutor.executeByNereids():801] Nereids plan query failed:
select
id,
brand,
type_category,
object_id,
level_one_tag_name,
level_two_tag_name,
tag_name,
system_key,
parent_system_key,
is_leaf,
create_time
from
supervoc_for_ges.super_voc.t_system_tag
where
object_id = 'cac78ebf4e82ff59c3562f5750c61fb7' and is_delete = 0
java.lang.NullPointerException: database is null
at java.util.Objects.requireNonNull(Objects.java:228) ~[?:1.8.0_111]
at org.apache.doris.mtmv.BaseTableInfo.<init>(BaseTableInfo.java:63) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.analysis.CollectRelation.collectMTMVCandidates(CollectRelation.java:199) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.analysis.CollectRelation.collectFromUnboundRelation(CollectRelation.java:183) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.analysis.CollectRelation.collectFromUnboundRelation(CollectRelation.java:158) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.pattern.PatternMatcher$1.transform(PatternMatcher.java:92) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.rewrite.PlanTreeRewriteJob.rewrite(PlanTreeRewriteJob.java:57) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.rewrite.PlanTreeRewriteTopDownJob.execute(PlanTreeRewriteTopDownJob.java:50) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.scheduler.SimpleJobScheduler.executeJobPool(SimpleJobScheduler.java:44) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.rewrite.RootPlanTreeRewriteJob.execute(RootPlanTreeRewriteJob.java:66) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.executor.AbstractBatchJobExecutor.execute(AbstractBatchJobExecutor.java:139) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.executor.TableCollector.collect(TableCollector.java:56) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.lambda$collectAndLockTable$3(NereidsPlanner.java:331) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.keepOrShowPlanProcess(NereidsPlanner.java:769) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.collectAndLockTable(NereidsPlanner.java:331) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.planWithLock(NereidsPlanner.java:206) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.plan(NereidsPlanner.java:129) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:795) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:561) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:344) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:225) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:285) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:313) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:483) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_111]
2025-04-14 11:12:07,687 WARN (mysql-nio-pool-19|423) [StmtExecutor.analyze():1285] Analyze failed. stmt[4387, 9b09899ec583415c-839b9d555d9947c5]
java.lang.NullPointerException: null
at org.apache.doris.datasource.jdbc.JdbcExternalTable.initSchema(JdbcExternalTable.java:114) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalTable.initSchema(ExternalTable.java:337) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalTable.initSchemaAndUpdateTime(ExternalTable.java:333) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalCatalog.getSchema(ExternalCatalog.java:536) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalSchemaCache.loadSchema(ExternalSchemaCache.java:77) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalSchemaCache.lambda$init$0(ExternalSchemaCache.java:60) ~[doris-fe.jar:1.2-SNAPSHOT]
at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$2(LocalLoadingCache.java:145) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2406) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853) ~[?:1.8.0_111]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2404) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2387) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:56) ~[hive-catalog-shade-2.1.1.jar:2.1.1]
at org.apache.doris.datasource.ExternalSchemaCache.getSchemaValue(ExternalSchemaCache.java:90) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalSchemaCache.getSchemaValue(ExternalSchemaCache.java:86) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalTable.getFullSchema(ExternalTable.java:172) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.datasource.ExternalTable.getColumn(ExternalTable.java:197) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.analysis.Analyzer.resolveColumnRef(Analyzer.java:1168) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.analysis.Analyzer.registerColumnRef(Analyzer.java:967) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.analysis.SlotRef.analyzeImpl(SlotRef.java:209) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.analysis.Expr.analyze(Expr.java:437) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.analysis.SelectStmt.analyze(SelectStmt.java:589) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.analyzeAndGenerateQueryPlan(StmtExecutor.java:1375) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:1268) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:900) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:613) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:344) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:225) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:285) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:313) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:483) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_111]
2025-04-14 11:12:07,689 WARN (mysql-nio-pool-19|423) [StmtExecutor.executeByLegacy():1025] execute Exception. stmt[4387, 9b09899ec583415c-839b9d555d9947c5]
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = Unexpected exception: null
at org.apache.doris.qe.StmtExecutor.analyze(StmtExecutor.java:1286) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByLegacy(StmtExecutor.java:900) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:613) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:344) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:225) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:285) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:313) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:483) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_111]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_111]
at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_111]
日志中报错database is null,是catalog的问题吗?为什么其他两个fe节点能正常查询