pingcap / tidb

TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://www.pingcap.com/tidb-serverless/
https://pingcap.com
Apache License 2.0
37.04k stars 5.82k forks source link

Panic triggerred by the OOM-action output the same panic log with the panic that is unexpected #27089

Open buggithubs opened 3 years ago

buggithubs commented 3 years ago

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

image

image

 select  count(*) FROM mysql.stats_fm_sketch WHERE table_id = 418;
+----------+
| count(*) |
+----------+
|   143268 |
+----------+
1 row in set (0.06 sec)

[adapter.go:335] ["execute sql panic"] [sql="delete from mysql.stats_fm_sketch where table_id = 418"] [stack="github.com/pingcap/tidb/executor.(*ExecStmt).Exec.func1\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/adapter.go:335\nruntime.gopanic\n\t/usr/local/go/src/runtime/panic.go:965\ngithub.com/pingcap/tidb/util/memory.(*PanicOnExceed).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/util/memory/action.go:128\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/store/copr.(*rateLimitAction).Action\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/copr/coprocessor.go:1111\ngithub.com/pingcap/tidb/util/memory.(*Tracker).Consume\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/util/memory/tracker.go:284\ngithub.com/pingcap/tidb/executor.(*DeleteExec).removeRow\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/delete.go:211\ngithub.com/pingcap/tidb/executor.(*DeleteExec).deleteOneRow\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/delete.go:62\ngithub.com/pingcap/tidb/executor.(*DeleteExec).deleteSingleTableByChunk\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/delete.go:112\ngithub.com/pingcap/tidb/executor.(*DeleteExec).Next\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/delete.go:50\ngithub.com/pingcap/tidb/executor.Next\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/executor.go:286\ngithub.com/pingcap/tidb/executor.(*ExecStmt).handleNoDelayExecutor\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/adapter.go:589\ngithub.com/pingcap/tidb/executor.(*ExecStmt).handlePessimisticDML\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/adapter.go:608\ngithub.com/pingcap/tidb/executor.(*ExecStmt).handleNoDelay\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/adapter.go:468\ngithub.com/pingcap/tidb/executor.(*ExecStmt).Exec\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/executor/adapter.go:419\ngithub.com/pingcap/tidb/session.runStmt\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/session/session.go:1635\ngithub.com/pingcap/tidb/session.(*session).ExecuteStmt\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/session/session.go:1530\ngithub.com/pingcap/tidb/session.(*session).ExecuteInternal\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/session/session.go:1250\ngithub.com/pingcap/tidb/statistics/handle.(*Handle).DeleteTableStatsFromKV\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/statistics/handle/gc.go:220\ngithub.com/pingcap/tidb/statistics/handle.(*Handle).gcTableStats\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/statistics/handle/gc.go:74\ngithub.com/pingcap/tidb/statistics/handle.(*Handle).GCStats\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/statistics/handle/gc.go:48\ngithub.com/pingcap/tidb/domain.(*Domain).updateStatsWorker\n\t/home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/domain/domain.go:1312"]

2. What did you expect to see? (Required)

3. What did you see instead (Required)

4. What is your TiDB version? (Required)

Release Version: v5.1.1
Edition: Community
Git Commit Hash: 797bddd25310ed42f0791c8eccb78be8cce2f502
Git Branch: heads/refs/tags/v5.1.1
UTC Build Time: 2021-07-28 11:00:26
GoVersion: go1.16.4
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false
xiongjiwei commented 3 years ago

I think this issue belongs to the planner team, I will change the label, let me know if you have any concerns. @jingshanglu

yudongusa commented 3 years ago

I think this issue belongs to the planner team, I will change the label, let me know if you have any concerns. @jingshanglu Any findings why runtime panics? The plan looks ok though.

jingshanglu commented 3 years ago

I think this issue belongs to the planner team, I will change the label, let me know if you have any concerns. @jingshanglu Any findings why runtime panics? The plan looks ok though.

@xiongjiwei @yudongusa Ok,I can't find

winoros commented 3 years ago

@buggithubs This is just because the memory usage reached the limit and the oom-action is cancel, so the SQL failed. Not a bug. You may find memory exceeds quota near the panic log.

winoros commented 3 years ago

Actually, we can let TIDB not produce the same error log when panic is expected. This can save people's time. So I changed the title of the issue and changed its type