diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/storage/lmgr/lock.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c index fde20425f68..e4c9fa4ab42 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"), |