diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index fde20425f6..e4c9fa4ab4 100644 --- a/src/backend/storage/lmgr/lock.c +++ b/src/backend/storage/lmgr/lock.c @@ -2536,6 +2536,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag if (!proclock) { LWLockRelease(partitionLock); + LWLockRelease(proc->backendLock); return false; } GrantLock(proclock->tag.myLock, proclock, lockmode); @@ -2591,6 +2592,7 @@ FastPathGetRelationLockEntry(LOCALLOCK *locallock) if (!proclock) { LWLockRelease(partitionLock); + LWLockRelease(MyProc->backendLock); ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of shared memory"), @@ -4054,6 +4056,7 @@ VirtualXactLock(VirtualTransactionId vxid, bool wait) if (!proclock) { LWLockRelease(partitionLock); + LWLockRelease(proc->backendLock); ereport(ERROR, (errcode(ERRCODE_OUT_OF_MEMORY), errmsg("out of shared memory"),