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/[email protected]/internal/unionstore/memdb_arena.go:213
github.com/tikv/client-go/v2/internal/unionstore.(*MemDB).getNode(...)
	/nfs/cache/mod/github.com/tikv/client-go/[email protected]/internal/unionstore/memdb.go:754
github.com/tikv/client-go/v2/internal/unionstore.memdbNodeAddr.getRight(...)
	/nfs/cache/mod/github.com/tikv/client-go/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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/[email protected]/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