Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TiDB panic index out of range [4294967295] after long time tiup bench run #26832

Closed
linw1995 opened this issue Aug 3, 2021 · 8 comments · Fixed by #30290
Closed

TiDB panic index out of range [4294967295] after long time tiup bench run #26832

linw1995 opened this issue Aug 3, 2021 · 8 comments · Fixed by #30290
Assignees
Labels
affects-4.0 This bug affects 4.0.x versions. affects-5.0 This bug affects 5.0.x versions. affects-5.1 This bug affects 5.1.x versions. affects-5.2 This bug affects 5.2.x versions. affects-5.3 This bug affects 5.3.x versions. fixes-5.1.4 fixes-5.4.0 severity/major sig/transaction SIG:Transaction type/bug The issue is confirmed as a bug.

Comments

@linw1995
Copy link

linw1995 commented Aug 3, 2021

Bug Report

1. Minimal reproduce step (Required)

run command tiup bench tpcc --warehouses 10 --parts 10 run -T 128 -p "xxxxx" -D bench -U bencher

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

tiup bench runs smoothly and works fine.

3. What did you see instead (Required)

TiDB is down and stderr outputs this

panic: runtime error: index out of range [4294967295] with length 1

goroutine 114089996 [running]:
github.com/pingcap/tidb/store/tikv/unionstore.(*nodeAllocator).getNode(...)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/memdb_arena.go:192
github.com/pingcap/tidb/store/tikv/unionstore.(*MemDB).getNode(...)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/memdb.go:733
github.com/pingcap/tidb/store/tikv/unionstore.memdbNodeAddr.getRight(...)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/memdb.go:765
github.com/pingcap/tidb/store/tikv/unionstore.(*MemDB).traverse(0xc048215c70, 0xc074bfaf90, 0x13, 0x13, 0x0, 0x60, 0x7fbc4cc25a48)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/memdb.go:354 +0xd31
github.com/pingcap/tidb/store/tikv/unionstore.(*MemDB).GetFlags(0xc048215c70, 0xc074bfaf90, 0x13, 0x13, 0x3569680, 0x3b9f101, 0xc074a0bb60)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/memdb.go:202 +0x52
github.com/pingcap/tidb/store/tikv/unionstore.(*KVUnionStore).HasPresumeKeyNotExists(0xc0005908b8, 0xc074bfaf90, 0x13, 0x13, 0x13)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/unionstore/union_store.go:120 +0x4c
github.com/pingcap/tidb/store/tikv.actionPessimisticLock.handleSingleBatch(0xc074f003f0, 0xc0479f89a0, 0xc010b6c700, 0x2465, 0x5, 0x1bd, 0x3c05678, 0xc074c0cfc0, 0x0, 0x112fee5, ...)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/pessimistic.go:79 +0x1c7
github.com/pingcap/tidb/store/tikv.(*batchExecutor).startWorker.func1(0xc012715dc0, 0xc074c0d0e0, 0x2465, 0x5, 0x1bd, 0x3c05678, 0xc074c0cfc0, 0x0)
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:1641 +0x187
created by github.com/pingcap/tidb/store/tikv.(*batchExecutor).startWorker
        /home/jenkins/agent/workspace/optimization-build-tidb-linux-amd/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:1624 +0x19e

4. What is your TiDB version? (Required)

Release Version: v5.1.0
Edition: Community
Git Commit Hash: 8acd5c88471cb7b4d4c4a8ed73b4d53d6833f13e
Git Branch: heads/refs/tags/v5.1.0
UTC Build Time: 2021-06-24 07:10:32
GoVersion: go1.16.4
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false
@linw1995 linw1995 added the type/bug The issue is confirmed as a bug. label Aug 3, 2021
@lysu lysu self-assigned this Aug 6, 2021
@qw4990 qw4990 added the sig/sql-infra SIG: SQL Infra label Sep 23, 2021
@qw4990
Copy link
Contributor

qw4990 commented Sep 23, 2021

PTAL @cfzjywxk

@lysu
Copy link
Contributor

lysu commented Sep 23, 2021

@qw4990 it seems can not reproduce, and no obvious problem in code 😭

@cfzjywxk
Copy link
Contributor

@vivid392845427 has reproduced similar panic in the test environment.

@vivid392845427
Copy link

vivid392845427 commented Sep 24, 2021

run autotestcase as follow, the same tidb panic :
stmtflow test regression/all.jsonnet --diff --block-time=9s --dsn="root:@tcp(172.16.4.71:31657)/test?tidb_general_log=1"

tidb panic stack:
[2021/09/22 04:24:49.908 +00:00] [INFO] [2pc.go:1411] ["amend txn successfully"] [conn=97] [sessionID=97] ["txn startTS"=427893629697654802] [memAmended=false] [checkTS=427893637740757010] [startInfoSchemaVer=232] ["table ids"="[118]"] ["action types"="[384]"]
panic: runtime error: index out of range [4294967295] with length 4

goroutine 9034 [running]:
github.com/pingcap/tidb/kv.(*memdbVlog).getValue(...)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/kv/memdb_arena.go:269
github.com/pingcap/tidb/kv.(*memdb).GetValueByHandle(0xc001dcfad0, 0x63000020002, 0x63000020002, 0xc001c42653, 0x2e, 0x2e)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/kv/memdb.go:345 +0x1b3
github.com/pingcap/tidb/store/tikv.(*memBufferMutations).GetValue(0xc001844600, 0x6e, 0xc001c42653, 0x2e, 0x2e)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:140 +0x6b
github.com/pingcap/tidb/store/tikv.(*batched).appendBatchMutationsBySize(0xc0020e3800, 0x2, 0x1, 0x28, 0x4070dc0, 0xc001844600, 0xc000bd3bb0, 0x4000)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:1484 +0xec
github.com/pingcap/tidb/store/tikv.(*twoPhaseCommitter).doActionOnGroupMutations(0xc0005dec80, 0xc001998080, 0x403bf80, 0xc001a30c58, 0xc001844630, 0x1, 0x1, 0x0, 0x0)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:555 +0x277
github.com/pingcap/tidb/store/tikv.(*twoPhaseCommitter).doActionOnMutations(0xc0005dec80, 0xc001998080, 0x403bf80, 0xc001a30c58, 0x4070dc0, 0xc00181fd40, 0x30, 0xc001885dd0)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:494 +0xec
github.com/pingcap/tidb/store/tikv.(*twoPhaseCommitter).commitMutations(0xc0005dec80, 0xc001998080, 0x4070dc0, 0xc00181fd40, 0x0, 0x0)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/commit.go:158 +0xd8
github.com/pingcap/tidb/store/tikv.(*twoPhaseCommitter).execute.func3(0x4048f80, 0xc00181fd10, 0xc0005dec80)
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:1177 +0x135
created by github.com/pingcap/tidb/store/tikv.(*twoPhaseCommitter).execute
/home/jenkins/agent/workspace/idb_multi_branch_v5.0.4-20210918/go/src/github.com/pingcap/tidb/store/tikv/2pc.go:1172 +0x127a

@cfzjywxk
Copy link
Contributor

cfzjywxk commented Sep 29, 2021

Thanks @zyguan for the investigation.

The root cause for this is:
When the partition table is used doing the tpc-c benmark, the execution plan of the update statement on the order_line table will be

| Update_5                                 | N/A     | root      |                                                                                       | N/A                                                                                                                                                                                                                                                                                                                                                                    |
| └─Projection_10                          | 2762.64 | root      |                                                                                       | hash_tpcc.order_line.ol_o_id, hash_tpcc.order_line.ol_d_id, hash_tpcc.order_line.ol_w_id, hash_tpcc.order_line.ol_number, hash_tpcc.order_line.ol_i_id, hash_tpcc.order_line.ol_supply_w_id, hash_tpcc.order_line.ol_delivery_d, hash_tpcc.order_line.ol_quantity, hash_tpcc.order_line.ol_amount, hash_tpcc.order_line.ol_dist_info, hash_tpcc.order_line._tidb_rowid |
|   └─SelectLock_11                        | 2762.64 | root      |                                                                                       | for update 0                                                                                                                                                                                                                                                                                                                                                           |
|     └─PartitionUnion_12                  | 2762.64 | root      |                                                                                       |                                                                                                                                                                                                                                                                                                                                                                        |
|       ├─IndexLookUp_18                   | 534.42  | root      |                                                                                       |                                                                                                                                                                                                                                                                                                                                                                        |
|       │ ├─IndexRangeScan_16(Build)       | 534.42  | cop[tikv] | table:order_line, partition:p0, index:PRIMARY(ol_w_id, ol_d_id, ol_o_id, ol_number)   | range:[1 2 3,1 2 3], [276 576 876,276 576 876], [5059 5359 5659,5059 5359 5659], keep order:false                                                                                                                                                                                                                                                                      |
|       │ └─TableRowIDScan_17(Probe)       | 534.42  | cop[tikv] | table:order_line, partition:p0                                                        | keep order:false                                                                                                                                                                                                                                                                                                                                                       |
|       ├─IndexLookUp_24                   | 1120.43 | root      |                                                                                       |                                                                                                                                                                                                                                                                                                                                                                        |
|       │ ├─IndexRangeScan_22(Build)       | 1120.43 | cop[tikv] | table:order_line, partition:p258, index:PRIMARY(ol_w_id, ol_d_id, ol_o_id, ol_number) | range:[1 2 3,1 2 3], [276 576 876,276 576 876], [5059 5359 5659,5059 5359 5659], keep order:false                                                                                                                                                                                                                                                                      |
|       │ └─TableRowIDScan_23(Probe)       | 1120.43 | cop[tikv] | table:order_line, partition:p258                                                      | keep order:false                                                                                                                                                                                                                                                                                                                                                       |
|       └─IndexLookUp_30                   | 1107.79 | root      |                                                                                       |                                                                                                                                                                                                                                                                                                                                                                        |
|         ├─IndexRangeScan_28(Build)       | 1107.79 | cop[tikv] | table:order_line, partition:p275, index:PRIMARY(ol_w_id, ol_d_id, ol_o_id, ol_number) | range:[1 2 3,1 2 3], [276 576 876,276 576 876], [5059 5359 5659,5059 5359 5659], keep order:false                                                                                                                                                                                                                                                                      |
|         └─TableRowIDScan_29(Probe)       | 1107.79 | cop[tikv] | table:order_line, partition:p275                                                      | keep order:false                                                                          

If the parallel projection is used in the projection operator, the child selectLockExec operator of the projection could be executed in a seprate goroutine and it will try to pessimistically lock keys reading from transaction memory buffer. At the same time the update operator will try to process each row retuned updating the transaction memory buffer. As the MemDB is not thread safe, data race occured. So the memory address in the MemDB will be corrupted and finally panic happens.

WARNING: DATA RACE
Read at 0x00c04433e568 by goroutine 313:
  github.com/tikv/client-go/v2/internal/unionstore.memdbNodeAddr.getRight()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:790 +0x2a6
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).traverse()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:379 +0x27f
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).GetFlags()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:227 +0x68
  github.com/tikv/client-go/v2/internal/unionstore.(*KVUnionStore).HasPresumeKeyNotExists()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/union_store.go:141 +0x6d
  github.com/tikv/client-go/v2/txnkv/transaction.actionPessimisticLock.handleSingleBatch()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/pessimistic.go:94 +0x2b5
  github.com/tikv/client-go/v2/txnkv/transaction.(*twoPhaseCommitter).doActionOnBatches()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/2pc.go:812 +0x169
  github.com/tikv/client-go/v2/txnkv/transaction.(*twoPhaseCommitter).doActionOnGroupMutations()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/2pc.go:793 +0xb8f
  github.com/tikv/client-go/v2/txnkv/transaction.(*twoPhaseCommitter).doActionOnMutations()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/2pc.go:576 +0x17a
  github.com/tikv/client-go/v2/txnkv/transaction.(*twoPhaseCommitter).pessimisticLockMutations()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/pessimistic.go:299 +0x24c
  github.com/tikv/client-go/v2/txnkv/transaction.(*KVTxn).LockKeys()
      /home/zyguan/go/src/github.com/tikv/client-go/txnkv/transaction/txn.go:604 +0xc76
  github.com/pingcap/tidb/store/driver/txn.(*tikvTxn).LockKeys()
      /home/zyguan/go/src/github.com/pingcap/tidb/store/driver/txn/txn_driver.go:68 +0x11e
  github.com/pingcap/tidb/session.(*LazyTxn).LockKeys()
      /home/zyguan/go/src/github.com/pingcap/tidb/session/txn.go:392 +0x1f4
  github.com/pingcap/tidb/executor.doLockKeys()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/executor.go:1014 +0x2ef
  github.com/pingcap/tidb/executor.(*SelectLockExec).Next()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/executor.go:967 +0xe6f
  github.com/pingcap/tidb/executor.Next()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/executor.go:286 +0x2a8
  github.com/pingcap/tidb/executor.(*projectionInputFetcher).run()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/projection.go:381 +0x498

Previous write at 0x00c04433e568 by goroutine 290:
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).rightRotate()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:553 +0x2ba
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).traverse()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:449 +0xa64
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).set()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:321 +0x13a
  github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).Set()
      /home/zyguan/go/src/github.com/tikv/client-go/internal/unionstore/memdb.go:246 +0x128
  github.com/pingcap/tidb/store/driver/txn.(*memBuffer).Set()
      /home/zyguan/go/src/github.com/pingcap/tidb/store/driver/txn/unionstore_driver.go:81 +0x2f
  github.com/pingcap/tidb/table/tables.(*index).Create()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/index.go:188 +0x683
  github.com/pingcap/tidb/table/tables.(*TableCommon).buildIndexForRow()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/tables.go:1244 +0x2be
  github.com/pingcap/tidb/table/tables.(*TableCommon).rebuildIndices()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/tables.go:495 +0x54b
  github.com/pingcap/tidb/table/tables.(*TableCommon).UpdateRecord()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/tables.go:408 +0x25fd
  github.com/pingcap/tidb/table/tables.(*partition).UpdateRecord()
      <autogenerated>:1 +0x124
  github.com/pingcap/tidb/table/tables.partitionedTableUpdateRecord()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/partition.go:1237 +0x9e6
  github.com/pingcap/tidb/table/tables.(*partitionedTable).UpdateRecord()
      /home/zyguan/go/src/github.com/pingcap/tidb/table/tables/partition.go:1188 +0x124
  github.com/pingcap/tidb/executor.updateRecord()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/write.go:206 +0x19aa
  github.com/pingcap/tidb/executor.(*UpdateExec).exec()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/update.go:189 +0x765
  github.com/pingcap/tidb/executor.(*UpdateExec).updateRows()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/update.go:302 +0x7dd
  github.com/pingcap/tidb/executor.(*UpdateExec).Next()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/update.go:220 +0xa9
  github.com/pingcap/tidb/executor.Next()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/executor.go:286 +0x2a8
  github.com/pingcap/tidb/executor.(*ExecStmt).handleNoDelayExecutor()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/adapter.go:584 +0x3b9
  github.com/pingcap/tidb/executor.(*ExecStmt).handlePessimisticDML()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/adapter.go:603 +0x1d2
  github.com/pingcap/tidb/executor.(*ExecStmt).handleNoDelay()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/adapter.go:463 +0x1ef
  github.com/pingcap/tidb/executor.(*ExecStmt).Exec()
      /home/zyguan/go/src/github.com/pingcap/tidb/executor/adapter.go:414 +0x4f0
  github.com/pingcap/tidb/session.runStmt()
      /home/zyguan/go/src/github.com/pingcap/tidb/session/session.go:1682 +0x323
  github.com/pingcap/tidb/session.(*session).preparedStmtExec()
      /home/zyguan/go/src/github.com/pingcap/tidb/session/session.go:1819 +0x2e4
  github.com/pingcap/tidb/session.(*session).ExecutePreparedStmt()
      /home/zyguan/go/src/github.com/pingcap/tidb/session/session.go:1980 +0x5c6
  github.com/pingcap/tidb/server.(*TiDBStatement).Execute()
      /home/zyguan/go/src/github.com/pingcap/tidb/server/driver_tidb.go:74 +0x11a
  github.com/pingcap/tidb/server.(*clientConn).executePreparedStmtAndWriteResult()
      /home/zyguan/go/src/github.com/pingcap/tidb/server/conn_stmt.go:223 +0xb2

In tidb, some operators will be executed concorrently and they may access the transaction memory buffer, it's needed to be handled carefully or we need to figure out a way to avoid such possible races.

@cyliu0
Copy link
Contributor

cyliu0 commented Nov 30, 2021

@Tammyxia hit this twice today while running tpcc.

panic: runtime error: index out of range [4294967295] with length 2

goroutine 24492959 [running]:
github.com/tikv/client-go/v2/internal/unionstore.(*nodeAllocator).getNode(...)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/memdb_arena.go:213
github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).getNode(...)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/memdb.go:754
github.com/tikv/client-go/v2/internal/unionstore.memdbNodeAddr.getRight(...)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/memdb.go:786
github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).traverse(0xc0175c32b0, 0xc045da3e30, 0x13, 0x13, 0x0, 0x60, 0x7f86257193c8)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/memdb.go:375 +0xd51
github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).GetFlags(0xc0175c32b0, 0xc045da3e30, 0x13, 0x13, 0x3bbecc0, 0x42a7f01, 0xc04336f6e0)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/memdb.go:223 +0x52
github.com/tikv/client-go/v2/internal/unionstore.(*KVUnionStore).HasPresumeKeyNotExists(0xc0acc30180, 0xc045da3e30, 0x13, 0x13, 0x13)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/internal/unionstore/union_store.go:141 +0x4c
github.com/tikv/client-go/v2/txnkv/transaction.actionPessimisticLock.handleSingleBatch(0xc00581ebe0, 0xc05f786000, 0xc0a1cbbd40, 0x488, 0x5, 0x98, 0x4319f38, 0xc0a6b869c0, 0x0, 0x12fe4c5, ...)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/txnkv/transaction/pessimistic.go:94 +0x1c7
github.com/tikv/client-go/v2/txnkv/transaction.(*batchExecutor).startWorker.func1(0xc0ab1b3740, 0xc0a6b86ae0, 0x488, 0x5, 0x98, 0x4319f38, 0xc0a6b869c0, 0x0)
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/txnkv/transaction/2pc.go:1804 +0x197
created by github.com/tikv/client-go/v2/txnkv/transaction.(*batchExecutor).startWorker
	/nfs/cache/mod/github.com/tikv/client-go/v2@v2.0.0-alpha.0.20211118154139-b11da6307c6f/txnkv/transaction/2pc.go:1787 +0x19e

@github-actions
Copy link

github-actions bot commented Dec 3, 2021

Please check whether the issue should be labeled with 'affects-x.y' or 'fixes-x.y.z', and then remove 'needs-more-info' label.

@sticnarf
Copy link
Contributor

A similar problem could happen if there are other parallel executors between Update and SelectLock like IndexHashJoin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects-4.0 This bug affects 4.0.x versions. affects-5.0 This bug affects 5.0.x versions. affects-5.1 This bug affects 5.1.x versions. affects-5.2 This bug affects 5.2.x versions. affects-5.3 This bug affects 5.3.x versions. fixes-5.1.4 fixes-5.4.0 severity/major sig/transaction SIG:Transaction type/bug The issue is confirmed as a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants