fix-mydatabaseid-compare.patch
application/octet-stream
Filename: fix-mydatabaseid-compare.patch
Type: application/octet-stream
Part: 0
Message:
Re: HS locking broken in HEAD
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/storage/lmgr/lock.c | 6 | 6 |
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 49dadd1..1a00b2b 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -2437,8 +2437,8 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
LWLockAcquire(proc->backendLock, LW_EXCLUSIVE);
/*
- * If the target backend isn't referencing the same database as we
- * are, then we needn't examine the individual relation IDs at all;
+ * If the target backend isn't referencing the same database as the
+ * lock, then we needn't examine the individual relation IDs at all;
* none of them can be relevant.
*
* proc->databaseId is set at backend startup time and never changes
@@ -2451,7 +2451,7 @@ FastPathTransferRelationLocks(LockMethod lockMethodTable, const LOCKTAG *locktag
* fencing operation since the other backend set proc->databaseId. So
* for now, we test it after acquiring the LWLock just to be safe.
*/
- if (proc->databaseId != MyDatabaseId)
+ if (proc->databaseId != locktag->locktag_field1)
{
LWLockRelease(proc->backendLock);
continue;
@@ -2668,14 +2668,14 @@ GetLockConflicts(const LOCKTAG *locktag, LOCKMODE lockmode)
LWLockAcquire(proc->backendLock, LW_SHARED);
/*
- * If the target backend isn't referencing the same database as we
- * are, then we needn't examine the individual relation IDs at
+ * If the target backend isn't referencing the same database as the
+ * lock, then we needn't examine the individual relation IDs at
* all; none of them can be relevant.
*
* See FastPathTransferLocks() for discussion of why we do this
* test after acquiring the lock.
*/
- if (proc->databaseId != MyDatabaseId)
+ if (proc->databaseId != locktag->locktag_field1)
{
LWLockRelease(proc->backendLock);
continue;