pingcap / pingcap/tidb

EXPLAIN FOR CONNECTION can fail with: runtime error index out of range [3] with length 0

Open
#63,877 0 comments 0 reactions 0 assignees View on GitHub
affects-8.5 impact/panic may-affects-6.5 may-affects-7.1 may-affects-7.5 may-affects-8.1 severity/major sig/execution type/bug
Dominant language
Go
Stars
40.5k
Forks
6.2k
PR merge metrics
PR metrics pending

Description

## Bug Report

Please answer these questions before submitting your issue. Thanks!

### 1. Minimal reproduce step (Required)

Not easy to reproduce, but while running my tests from https://github.com/mjonss/tidb-optimizer-calibration I occationally get this.

I ran it's version cc5076d748740af5d4fe483829754502f0e02777 like `./tidb-optimizer-calibration -n 7 -s 1M,5M,10M -c 0.0075,0.01,0.02,0.05,0.075,0.1,0.15,0.2 -f 1000` and had already started tiup with `tiup playground --kv 3 --tiflash 0` on a mini PC with 64GB ram.

### 2. What did you expect to see? (Required)
`❌ Error running scenario index_10M_2000000: failed to get actual execution plan: Error 1105 (HY000): runtime error: index out of range [682] with length 0`

With the following trace from the TiDB instance:
```
runtime error: index out of range [3] with length 0
github.com/pingcap/errors.Trace
/root/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20241219054535-6b8c588c3122/juju_adaptor.go:15
github.com/pingcap/tidb/pkg/util.GetRecoverError
/workspace/source/tidb/pkg/util/util.go:288
github.com/pingcap/tidb/pkg/executor/internal/exec.Next.func1
/workspace/source/tidb/pkg/executor/internal/exec/executor.go:440
runtime.gopanic
/usr/local/go/src/runtime/panic.go:791
runtime.goPanicIndex
/usr/local/go/src/runtime/panic.go:115
github.com/influxdata/tdigest.CentroidList.Less
/root/go/pkg/mod/github.com/influxdata/tdigest@v0.0.1/centroid.go:52
sort.partitionEqual
/usr/local/go/src/sort/zsortinterface.go:181
sort.pdqsort
/usr/local/go/src/sort/zsortinterface.go:109
sort.pdqsort
/usr/local/go/src/sort/zsortinterface.go:121
sort.Sort
/usr/local/go/src/sort/sort.go:51
github.com/influxdata/tdigest.(*TDigest).process
/root/go/pkg/mod/github.com/influxdata/tdigest@v0.0.1/tdigest.go:95
github.com/influxdata/tdigest.(*TDigest).Quantile
/root/go/pkg/mod/github.com/influxdata/tdigest@v0.0.1/tdigest.go:164
github.com/pingcap/tidb/pkg/util/execdetails.(*Percentile[...]).GetPercentile
/workspace/source/tidb/pkg/util/execdetails/execdetails.go:639
github.com/pingcap/tidb/pkg/distsql.(*selectResultRuntimeStats).String
/workspace/source/tidb/pkg/distsql/select_result.go:772
github.com/pingcap/tidb/pkg/util/execdetails.(*RootRuntimeStats).String
/workspace/source/tidb/pkg/util/execdetails/execdetails.go:1376
github.com/pingcap/tidb/pkg/planner/core.getRuntimeInfoStr
/workspace/source/tidb/pkg/planner/core/common_plans.go:1087
github.com/pingcap/tidb/pkg/planner/core.(*Explain).prepareOperatorInfo
/workspace/source/tidb/pkg/planner/core/common_plans.go:1146
github.com/pingcap/tidb/pkg/planner/core.(*Explain).explainFlatOpInRowFormat
/workspace/source/tidb/pkg/planner/core/common_plans.go:1071
github.com/pingcap/tidb/pkg/planner/core.(*Explain).explainFlatPlanInRowFormat
/workspace/source/tidb/pkg/planner/core/common_plans.go:1012
github.com/pingcap/tidb/pkg/planner/core.(*Explain).RenderResult
/workspace/source/tidb/pkg/planner/core/common_plans.go:964
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).generateExplainInfo
/workspace/source/tidb/pkg/executor/explain.go:152
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).Next
/workspace/source/tidb/pkg/executor/explain.go:75
github.com/pingcap/tidb/pkg/executor/internal/exec.Next
/workspace/source/tidb/pkg/executor/internal/exec/executor.go:456
github.com/pingcap/tidb/pkg/executor.(*ExecStmt).next
/workspace/source/tidb/pkg/executor/adapter.go:1304
github.com/pingcap/tidb/pkg/executor.(*recordSet).Next
/workspace/source/tidb/pkg/executor/adapter.go:172
github.com/pingcap/tidb/pkg/server/internal/resultset.(*tidbResultSet).Next
/workspace/source/tidb/pkg/server/internal/resultset/resultset.go:72
github.com/pingcap/tidb/pkg/server.(*clientConn).writeChunks
/workspace/source/tidb/pkg/server/conn.go:2326
github.com/pingcap/tidb/pkg/server.(*clientConn).writeResultSet
/workspace/source/tidb/pkg/server/conn.go:2269
github.com/pingcap/tidb/pkg/server.(*clientConn).handleStmt
/workspace/source/tidb/pkg/server/conn.go:2072
github.com/pingcap/tidb/pkg/server.(*clientConn).handleQuery
/workspace/source/tidb/pkg/server/conn.go:1780
github.com/pingcap/tidb/pkg/server.(*clientConn).dispatch
/workspace/source/tidb/pkg/server/conn.go:1379
github.com/pingcap/tidb/pkg/server.(*clientConn).Run
/workspace/source/tidb/pkg/server/conn.go:1148
```

### 3. What did you see instead (Required)
No error

### 4. What is your TiDB version? (Required)

```
tidb_version(): Release Version: v8.5.3
Edition: Community
Git Commit Hash: dc2548aac79a712265e831cff2a3a896bc0a5a38
Git Branch: HEAD
UTC Build Time: 2025-07-31 13:54:43
GoVersion: go1.23.8
Race Enabled: false
Check Table Before Drop: false
Store: tikv
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.