From 061eca1bf4c426f8462800b8d7d4caed64b5dddf Mon Sep 17 00:00:00 2001 From: "dongjianguo@gbase.cn" Date: Thu, 13 Oct 2022 15:15:32 +0800 Subject: [PATCH] SubXactLockTableWait call LockAcquire missing out 5th parameter. --- src/gausskernel/storage/access/ustore/knl_uheap.cpp | 2 +- src/gausskernel/storage/lmgr/lmgr.cpp | 4 ++-- src/include/storage/lmgr.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gausskernel/storage/access/ustore/knl_uheap.cpp b/src/gausskernel/storage/access/ustore/knl_uheap.cpp index 666aac7b1..8b3b787b2 100644 --- a/src/gausskernel/storage/access/ustore/knl_uheap.cpp +++ b/src/gausskernel/storage/access/ustore/knl_uheap.cpp @@ -1458,7 +1458,7 @@ static bool UHeapWait(Relation relation, Buffer buffer, UHeapTuple utuple, LockT } } else { if (InvalidSubTransactionId != subXid) { - SubXactLockTableWait(topXid, subXid, waitSec); + SubXactLockTableWait(topXid, subXid, true, waitSec); isSubXact = true; } else { XactLockTableWait(topXid, true, waitSec); diff --git a/src/gausskernel/storage/lmgr/lmgr.cpp b/src/gausskernel/storage/lmgr/lmgr.cpp index 809db8618..3154d85bf 100755 --- a/src/gausskernel/storage/lmgr/lmgr.cpp +++ b/src/gausskernel/storage/lmgr/lmgr.cpp @@ -738,7 +738,7 @@ SubXactLockTableDelete(SubTransactionId subxid) * still in progress. */ void -SubXactLockTableWait(TransactionId xid, SubTransactionId subxid, int waitSec) +SubXactLockTableWait(TransactionId xid, SubTransactionId subxid, bool allow_con_update, int waitSec) { LOCKTAG tag; Assert(TransactionIdIsValid(xid)); @@ -747,7 +747,7 @@ SubXactLockTableWait(TransactionId xid, SubTransactionId subxid, int waitSec) SET_LOCKTAG_SUBTRANSACTION(tag, xid, subxid); - (void) LockAcquire(&tag, ShareLock, false, false, waitSec); + (void) LockAcquire(&tag, ShareLock, false, false, allow_con_update, waitSec); LockRelease(&tag, ShareLock, false); } diff --git a/src/include/storage/lmgr.h b/src/include/storage/lmgr.h index 288e3a6d7..8f1c8e236 100644 --- a/src/include/storage/lmgr.h +++ b/src/include/storage/lmgr.h @@ -70,7 +70,7 @@ extern bool ConditionalXactLockTableWait(TransactionId xid, bool waitparent = tr /* Lock a SubXID */ extern void SubXactLockTableInsert(SubTransactionId subxid); -extern void SubXactLockTableWait(TransactionId xid, SubTransactionId subxid, int waitSec = 0); +extern void SubXactLockTableWait(TransactionId xid, SubTransactionId subxid, bool allow_con_update = false, int waitSec = 0); extern bool ConditionalSubXactLockTableWait(TransactionId xid, SubTransactionId subxid); /* Lock a general object (other than a relation) of the current database */