runtime error: invalid memory address or nil pointer dereference

一个好的问题描述有利于社区小伙伴更快帮你定位到问题,高效解决你的问题

【TiDB 使用环境】测试环境
【TiDB 版本】v8.5.4
SQL执行报错了,请求支援

["connection running loop panic"] [conn=677481404] [session_alias=] [lastSQL="SELECT COUNT(*) AS total FROM tm_leads_original tl WHERE ((tl.original_lead_status IN (5)) AND created_org_id = 120824302181000186) AND clear_staff_id = 62637137357810445"] [err="runtime error: invalid memory address or nil pointer dereference"] [stack="github.com/pingcap/tidb/pkg/server.(*clientConn).Run.func1\n\t/workspace/source/tidb/pkg/server/conn.go:1045\nruntime.gopanic\n\t/usr/local/go/src/runtime/panic.go:791\ngithub.com/pingcap/tidb/pkg/executor.(*Compiler).Compile.func1\n\t/workspace/source/tidb/pkg/executor/compiler.go:59\nruntime.gopanic\n\t/usr/local/go/src/runtime/panic.go:791\nruntime.panicmem\n\t/usr/local/go/src/runtime/panic.go:262\nruntime.sigpanic\n\t/usr/local/go/src/runtime/signal_unix.go:917\ngithub.com/pingcap/tidb/pkg/planner/cardinality.estimateRowCountWithUniformDistribution\n\t/workspace/source/tidb/pkg/planner/cardinality/row_count_index.go:422\ngithub.com/pingcap/tidb/pkg/planner/cardinality.estimateRowCountWithUniformDistribution\n\t/workspace/source/tidb/pkg/planner/cardinality/row_count_index.go:422\ngithub.com/pingcap/tidb/pkg/planner/cardinality.equalRowCountOnIndex\n\t/workspace/source/tidb/pkg/planner/cardinality/row_count_index.go:512\ngithub.com/pingcap/tidb/pkg/planner/cardinality.getIndexRowCountForStatsV2\n\t/workspace/source/tidb/pkg/planner/cardinality/row_count_index.go:267\ngithub.com/pingcap/tidb/pkg/planner/cardinality.GetRowCountByIndexRanges\n\t/workspace/source/tidb/pkg/planner/cardinality/row_count_index.go:85\ngithub.com/pingcap/tidb/pkg/planner/core.detachCondAndBuildRangeForPath\n\t/workspace/source/tidb/pkg/planner/core/stats.go:411\ngithub.com/pingcap/tidb/pkg/planner/core.fillIndexPath\n\t/workspace/source/tidb/pkg/planner/core/stats.go:202\ngithub.com/pingcap/tidb/pkg/planner/core.deriveStats4DataSource\n\t/workspace/source/tidb/pkg/planner/core/stats.go:142\ngithub.com/pingcap/tidb/pkg/planner/core/operator/logicalop.(*DataSource).DeriveStats\n\t/workspace/source/tidb/pkg/planner/core/operator/logicalop/logical_datasource.go:364\ngithub.com/pingcap/tidb/pkg/planner/core/operator/logicalop.(*BaseLogicalPlan).RecursiveDeriveStats\n\t/workspace/source/tidb/pkg/planner/core/operator/logicalop/base_logical_plan.go:211\ngithub.com/pingcap/tidb/pkg/planner/core/operator/logicalop.(*BaseLogicalPlan).RecursiveDeriveStats\n\t/workspace/source/tidb/pkg/planner/core/operator/logicalop/base_logical_plan.go:204\ngithub.com/pingcap/tiidb/pkg/planner/core/operator/logicalop.(*BaseLogicalPlan).RecursiveDeriveStats\n\t/workspace/source/tidb/pkg/planner/core/operator/logicalop/base_logical_plan.go:204\ngithub.com/pingcap/tidb/pkg/planner/core.physicalOptimize\n\t/workspace/source/tidb/pkg/planner/core/optimizer.go:1027\ngithub.com/pingcap/tidb/pkg/planner/core.doOptimize\n\t/workspace/source/tidb/pkg/planner/core/optimizer.go:271\ngithub.com/pingcap/tidb/pkg/planner/core.DoOptimize\n\t/workspace/source/tidb/pkg/planner/core/optimizer.go:321\ngithub.com/pingcap/tidb/pkg/planner.optimize\n\t/workspace/source/tidb/pkg/planner/optimize.go:530\ngithub.com/pingcap/tidb/pkg/planner.Optimize\n\t/workspace/source/tidb/pkg/planner/optimize.go:361\ngithub.com/pingcap/tidb/pkg/executor.(*Compiler).Compile\n\t/workspace/source/tidb/pkg/executor/compiler.go:102\ngithub.com/pingcap/tidb/pkg/session.(*session).ExecuteStmt\n\t/workspace/source/tidb/pkg/session/session.go:2112\ngithub.com/pingcap/tidb/pkg/server.(*TiDBContext).ExecuteStmt\n\t/workspace/source/tidb/pkg/server/driver_tidb.go:291\ngithub.com/pingcap/tidb/pkg/server.(*clientConn).handleStmt\n\t/workspace/source/tidb/pkg/server/conn.go:2033\ngithub.com/pingcap/tidb/pkg/server.(*clientConn).handleQuery\n\t/workspace/source/tidb/pkg/server/conn.go:1780\ngithub.com/pingcap/tidb/pkg/server.(*clientConn).dispatch\n\t/workspace/source/tidb/pkg/server/conn.go:1379\ngithub.com/pingcap/tidb/pkg/server.(*clientConn).Run\n\t/workspace/source/tidb/pkg/server/conn.go:1148\ngithub.com/pingcap/tidb/pkg/server.(*Server).onConn\n\t/workspace/source/tidb/pkg/server/server.go:741"]```

上次遇到过一次,这次还是相同问题吗?

版本升级先看release notes的不兼容变更。

是的,还是同样的问题。删除索引后恢复正常。

8.5.6 修复了
https://github.com/pingcap/tidb/issues/65867

1 个赞

跨版本问题源于优化器规则和存储引擎层变更。

这是 TiDB Server 侧 panic,多半与特定版本 bug 或异常统计信息/表达式有关。建议:1)升级至同系列最新 patch(8.5.x);2)对该 SQL 做 EXPLAIN,看是否涉及 generated 列、视图或特殊函数;3)收集 tidb.log + 复现 SQL 提 issue;4)临时绕过可改写 SQL 或加 hint。nil pointer 在 compiler 阶段说明与优化器/表达式绑定相关,需结合完整栈和表 DDL 排查。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。