tidb v5.3.1 疑似统计信息bug导致查询崩溃

【 TiDB 使用环境】生产环境
【 TiDB 版本】v5.3.1
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
[2025/02/08 19:03:43.693 +08:00] [ERROR] [terror.go:307] [“encountered error”] [error=“[types:1292]Incorrect time value: ‘{0 0 0 0 0 0 0}’”] [stack=“github.com/pingcap/tidb/parser/terror.Log\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/parser/terror/terror.go:307\ngithub.com/pingcap/tidb/types.(*Time).Sub\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/types/time.go:678\ngithub.com/pingcap/tidb/statistics.convertDatumToScalar\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/statistics/scalar.go:77\ngithub.com/pingcap/tidb/statistics.(*Histogram).outOfRangeRowCount\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/statistics/histogram.go:892\ngithub.com/pingcap/tidb/statistics.(*Column).GetColumnRowCount\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/statistics/histogram.go:1227\ngithub.com/pingcap/tidb/statistics.(*HistColl).GetRowCountByColumnRanges\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/statistics/table.go:354\ngithub.com/pingcap/tidb/statistics.(*HistColl).Selectivity\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/statistics/selectivity.go:234\ngithub.com/pingcap/tidb/planner/core.(*DataSource).deriveStatsByFilter\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/stats.go:250\ngithub.com/pingcap/tidb/planner/core.(*DataSource).DeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/stats.go:406\ngithub.com/pingcap/tidb/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/stats.go:131\ngithub.com/pingcap/tidb/planner/core.(*baseLogicalPlan).recursiveDeriveStats\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/stats.go:124\ngithub.com/pingcap/tidb/planner/core.physicalOptimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/optimizer.go:360\ngithub.com/pingcap/tidb/planner/core.DoOptimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/core/optimizer.go:235\ngithub.com/pingcap/tidb/planner.optimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/optimize.go:389\ngithub.com/pingcap/tidb/planner.Optimize\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/planner/optimize.go:230\ngithub.com/pingcap/tidb/executor.(*Compiler).Compile\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/executor/compiler.go:66\ngithub.com/pingcap/tidb/session.(*session).ExecuteStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/session/session.go:1558\ngithub.com/pingcap/tidb/server.(*TiDBContext).ExecuteStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/driver_tidb.go:219\ngithub.com/pingcap/tidb/server.(*clientConn).handleStmt\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/conn.go:1946\ngithub.com/pingcap/tidb/server.(*clientConn).handleQuery\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/conn.go:1815\ngithub.com/pingcap/tidb/server.(*clientConn).dispatch\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/conn.go:1319\ngithub.com/pingcap/tidb/server.(*clientConn).Run\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/conn.go:1075\ngithub.com/pingcap/tidb/server.(*Server).onConn\n\t/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/server/server.go:551”]

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】

考虑升级大版本不

1 个赞

临时肯定不太行……这个是正式在线业务在跑的,后续肯定要升级

有一个 tikv 节点 IO 过高,这边先设置了leader 驱逐以及下线,设置完之后暂时没看到报错

什么原因导致的呀

[“encountered error”] [error=“[types:1292]Incorrect time value: ‘{0 0 0 0 0 0 0}’”]

看起来是数据类型的错误导致的,可以追查下是具体的哪个表,排除下问题

这个表的数据是 tidb-lightning 导入的么?如果是物理导入的,中间出现报错异常退出,确实可能会产生错误数据。
一般这种场景都是命中特定数据才会报错,查询其他数据就没问题。

可以用 admin check table 看下是否有报错。

https://docs.pingcap.com/zh/tidb/stable/sql-statement-admin-check-table-index#admin-check-tableindex

https://cn.pingcap.com/tidb-release-support-policy/

5.3已经EOL了,还是尽快安排升级。越拖问题越多。