Skip to content

Parallel sort hangs when there is an error #59655

@xzhangxian1008

Description

@xzhangxian1008

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

  1. load tpch10 data
  2. set tidb_executor_concurrency = 20
  3. explain analyze select l_tax from lineitem order by l_comment, l_shipmode, l_discount;
  4. manually kill the sql

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

3. What did you see instead (Required)

goroutine 171262443 [chan send, 84 minutes]:
github.com/pingcap/tidb/pkg/executor/sortexec.(*parallelSortWorker).fetchChunksAndSortImpl(0xc0065e82c0)
	/workspace/source/tidb/pkg/executor/sortexec/parallel_sort_worker.go:216 +0x2c5
github.com/pingcap/tidb/pkg/executor/sortexec.(*parallelSortWorker).fetchChunksAndSort(...)
	/workspace/source/tidb/pkg/executor/sortexec/parallel_sort_worker.go:197
github.com/pingcap/tidb/pkg/executor/sortexec.(*parallelSortWorker).run(0xc0065e82c0)
	/workspace/source/tidb/pkg/executor/sortexec/parallel_sort_worker.go:263 +0x4c
github.com/pingcap/tidb/pkg/executor/sortexec.(*SortExec).fetchChunksParallel.func1()
	/workspace/source/tidb/pkg/executor/sortexec/sort.go:673 +0x17
github.com/pingcap/tidb/pkg/util.(*WaitGroupWrapper).Run.func1()
	/workspace/source/tidb/pkg/util/wait_group_wrapper.go:157 +0x4c
created by github.com/pingcap/tidb/pkg/util.(*WaitGroupWrapper).Run in goroutine 171262521
	/workspace/source/tidb/pkg/util/wait_group_wrapper.go:155 +0x73

goroutine 171239675 [chan receive, 84 minutes]:
github.com/pingcap/tidb/pkg/executor/sortexec.(*SortExec).Close(0xc02a6ef208)
	/workspace/source/tidb/pkg/executor/sortexec/sort.go:128 +0x265
github.com/pingcap/tidb/pkg/executor/internal/exec.Close({0x70b6000?, 0xc02a6ef208?})
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:472 +0x5c
github.com/pingcap/tidb/pkg/executor/internal/exec.(*BaseExecutorV2).Close(0xc1db5a6818?)
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:315 +0x52
github.com/pingcap/tidb/pkg/executor.(*PipelinedWindowExec).Close(0x0?)
	/workspace/source/tidb/pkg/executor/pipelined_window.go:82 +0x19
github.com/pingcap/tidb/pkg/executor/internal/exec.Close({0x70b5940?, 0xc02a6ef448?})
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:472 +0x5c
github.com/pingcap/tidb/pkg/executor.(*ShuffleExec).Close(0xc0064e5600)
	/workspace/source/tidb/pkg/executor/shuffle.go:178 +0x17c
github.com/pingcap/tidb/pkg/executor/internal/exec.Close({0x70b58b0?, 0xc0064e5600?})
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:472 +0x5c
github.com/pingcap/tidb/pkg/executor/internal/exec.(*BaseExecutorV2).Close(0xc04c31ea50?)
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:315 +0x52
github.com/pingcap/tidb/pkg/executor.(*SelectionExec).Close(0xc0064e5760?)
	/workspace/source/tidb/pkg/executor/select.go:697 +0x65
github.com/pingcap/tidb/pkg/executor/internal/exec.Close({0x70b47d0?, 0xc0064e5760?})
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:472 +0x5c
github.com/pingcap/tidb/pkg/executor/internal/exec.(*BaseExecutorV2).Close(0x202282b?)
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:315 +0x52
github.com/pingcap/tidb/pkg/executor.(*LimitExec).Close(0xc2b85e2640)
	/workspace/source/tidb/pkg/executor/select.go:513 +0x8d
github.com/pingcap/tidb/pkg/executor/internal/exec.Close({0x70b6cf0?, 0xc2b85e2640?})
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:472 +0x5c
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).executeAnalyzeExec.func1()
	/workspace/source/tidb/pkg/executor/explain.go:99 +0x32
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).executeAnalyzeExec(0xc067b3aea0, {0x707dc08?, 0xc04c31ea50?})
	/workspace/source/tidb/pkg/executor/explain.go:143 +0x4a2
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).generateExplainInfo(0xc067b3aea0, {0x707dc08?, 0xc04c31ea50?})
	/workspace/source/tidb/pkg/executor/explain.go:148 +0x33
github.com/pingcap/tidb/pkg/executor.(*ExplainExec).Next(0xc067b3aea0, {0x707dc08?, 0xc04c31ea50?}, 0xc02f081a40)
	/workspace/source/tidb/pkg/executor/explain.go:75 +0x35
github.com/pingcap/tidb/pkg/executor/internal/exec.Next({0x707dc08, 0xc04c31ea50}, {0x70b50d0, 0xc067b3aea0}, 0xc02f081a40)
	/workspace/source/tidb/pkg/executor/internal/exec/executor.go:456 +0x29f
github.com/pingcap/tidb/pkg/executor.(*ExecStmt).next(0xc04a93f0e0, {0x707dc08, 0xc04c31ea50}, {0x70b50d0, 0xc067b3aea0}, 0xc02f081a40)
	/workspace/source/tidb/pkg/executor/adapter.go:1266 +0x6e
github.com/pingcap/tidb/pkg/executor.(*recordSet).Next(0xc323aeb880, {0x707dc08?, 0xc04c31ea50?}, 0xc02f081a40)
	/workspace/source/tidb/pkg/executor/adapter.go:172 +0x108
github.com/pingcap/tidb/pkg/server/internal/resultset.(*tidbResultSet).Next(0x6775508?, {0x707dc08?, 0xc04c31ea50?}, 0xc0032650c0?)
	/workspace/source/tidb/pkg/server/internal/resultset/resultset.go:72 +0xc2
github.com/pingcap/tidb/pkg/server.(*clientConn).writeChunks(0xc0246beea0, {0x707dc08, 0xc04c31ea50}, {0x70a1880, 0xc04f08c040}, 0x0, 0x2)
	/workspace/source/tidb/pkg/server/conn.go:2319 +0x18c
github.com/pingcap/tidb/pkg/server.(*clientConn).writeResultSet(0xc0246beea0, {0x707dc08, 0xc04c31ea50}, {0x70a1880, 0xc04f08c040}, 0x0, 0x2, 0x0)
	/workspace/source/tidb/pkg/server/conn.go:2262 +0x153
github.com/pingcap/tidb/pkg/server.(*clientConn).handleStmt(0xc0246beea0, {0x707dc40, 0xc137770690}, {0x7099538, 0xc1a607f1f0}, {0x0, 0x0, 0x0}, 0x1)
	/workspace/source/tidb/pkg/server/conn.go:2065 +0x64f
github.com/pingcap/tidb/pkg/server.(*clientConn).handleQuery(0xc0246beea0, {0x707dc40, 0xc137770690}, {0xc0ba3fc001, 0x2cd})
	/workspace/source/tidb/pkg/server/conn.go:1779 +0xb36
github.com/pingcap/tidb/pkg/server.(*clientConn).dispatch(0xc0246beea0, {0x707dc08, 0xc24d4b4c00}, {0xc0ba3fc000, 0x2ce, 0x2ce})
	/workspace/source/tidb/pkg/server/conn.go:1378 +0xf85
github.com/pingcap/tidb/pkg/server.(*clientConn).Run(0xc0246beea0, {0x707dc08, 0xc24d4b4c00})
	/workspace/source/tidb/pkg/server/conn.go:1147 +0x528
github.com/pingcap/tidb/pkg/server.(*Server).onConn(0xc0010a2f00, 0xc0246beea0)
	/workspace/source/tidb/pkg/server/server.go:741 +0x81f
created by github.com/pingcap/tidb/pkg/server.(*Server).startNetworkListener in goroutine 850
	/workspace/source/tidb/pkg/server/server.go:560 +0x674

4. What is your TiDB version? (Required)

v8.5.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions