IndexHashJoin hang when exceed tidb_mem_quota_query #49033
Closed
Description
Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)
use test;
drop table if exists t, s;
create table t(a int, index(a));
create table s(a int, index(a));
insert into t values(1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12), (13), (14), (15), (16), (17), (18), (19), (20), (21), (22), (23), (24), (25), (26), (27), (28), (29), (30), (31), (32), (33), (34), (35), (36), (37), (38), (39), (40), (41), (42), (43), (44), (45), (46), (47), (48), (49), (50), (51), (52), (53), (54), (55), (56), (57), (58), (59), (60), (61), (62), (63), (64), (65), (66), (67), (68), (69), (70), (71), (72), (73), (74), (75), (76), (77), (78), (79), (80), (81), (82), (83), (84), (85), (86), (87), (88), (89), (90), (91), (92), (93), (94), (95), (96), (97), (98), (99), (100), (101), (102), (103), (104), (105), (106), (107), (108), (109), (110), (111), (112), (113), (114), (115), (116), (117), (118), (119), (120), (121), (122), (123), (124), (125), (126), (127), (128);
insert into s values(1), (128);
set @@tidb_max_chunk_size=32;
set @@tidb_index_lookup_join_concurrency=1;
set @@tidb_index_join_batch_size=32;
desc format = 'brief' select /*+ INL_HASH_JOIN(s) */ * from t join s on t.a=s.a order by t.a;
set @@tidb_mem_quota_query=12800;
select /*+ INL_HASH_JOIN(s) */ * from t join s on t.a=s.a order by t.a;
(In v6.1, v5.4,using tidb_mem_quota_query = 5000)
2. What did you expect to see? (Required)
Can cancel the sql or run successfully.
3. What did you see instead (Required)
Hang forever.
goroutine 18480 [select, 5 minutes]:
github.com/pingcap/tidb/pkg/executor.(*IndexNestedLoopHashJoin).runInOrder(0xc0012c2600, {0x6365340, 0xc002dfc510}, 0xc002e214f0)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/index_lookup_hash_join.go:260 +0xdd
github.com/pingcap/tidb/pkg/executor.(*IndexNestedLoopHashJoin).Next(0x6365340?, {0x6365340, 0xc002dfc510}, 0xc002e214f0)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/index_lookup_hash_join.go:225 +0x259
github.com/pingcap/tidb/pkg/executor/internal/exec.Next({0x6365340, 0xc002dfc510}, {0x637ab88, 0xc0012c2600}, 0xc002e214f0)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/internal/exec/executor.go:289 +0x2ba
github.com/pingcap/tidb/pkg/executor.(*ExecStmt).next(0xc001042d20, {0x6365340, 0xc002dfc510}, {0x637ab88, 0xc0012c2600}, 0xc0019cc400?)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/adapter.go:1226 +0x6e
github.com/pingcap/tidb/pkg/executor.(*recordSet).Next(0xc002e214a0, {0x6365340?, 0xc002dfc510?}, 0xc002e214f0)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/executor/adapter.go:154 +0xb2
github.com/pingcap/tidb/pkg/server/internal/resultset.(*tidbResultSet).Next(0xc0019cc000?, {0x6365340?, 0xc002dfc510?}, 0xc0034f6980?)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/internal/resultset/resultset.go:62 +0x25
github.com/pingcap/tidb/pkg/server.(*clientConn).writeChunks(0xc002817500, {0x6365340, 0xc002dfc510}, {0x6374da0, 0xc0015e18c0}, 0x0, 0x1bd?)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:2240 +0x18a
github.com/pingcap/tidb/pkg/server.(*clientConn).writeResultSet(0xc002817500, {0x6365340, 0xc002dfc510}, {0x6374da0, 0xc0015e18c0}, 0x60?, 0x2, 0x0?)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:2183 +0x2f0
github.com/pingcap/tidb/pkg/server.(*clientConn).handleStmt(0xc002817500, {0x6365378, 0xc003a1eaf0}, {0x6379ae8, 0xc00573e7e0}, {0x0, 0x0, 0x0}, 0x1)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:2051 +0x3e5
github.com/pingcap/tidb/pkg/server.(*clientConn).handleQuery(0xc002817500, {0x6365378, 0xc003a1eaf0}, {0xc00e8323c1, 0x46})
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:1812 +0x9a5
github.com/pingcap/tidb/pkg/server.(*clientConn).dispatch(0xc002817500, {0x6365340?, 0xc0038a5a70?}, {0xc00e8323c0, 0x47, 0x47})
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:1299 +0xf8b
github.com/pingcap/tidb/pkg/server.(*clientConn).Run(0xc002817500, {0x6365340, 0xc0038a5a70})
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/conn.go:1078 +0x53e
github.com/pingcap/tidb/pkg/server.(*Server).onConn(0xc004383b00?, 0xc002817500)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/server.go:701 +0x89d
created by github.com/pingcap/tidb/pkg/server.(*Server).startNetworkListener in goroutine 16348
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/tidb/pkg/server/server.go:517 +0x78d
4. What is your TiDB version? (Required)
master, v7.5, v7.1, v6.5, v6.1,v5.4