Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b51abb4

Browse files
committed
Fix release of LWlocks in case of errors
1 parent ed0eed3 commit b51abb4

File tree

1 file changed

+1
-7
lines changed

1 file changed

+1
-7
lines changed

contrib/mmts/multimaster.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -291,13 +291,6 @@ void MtmReleaseLocks(void)
291291
if (MtmClusterLocked) {
292292
MtmUnlockCluster();
293293
}
294-
if (MtmLockCount != 0) {
295-
Assert(Mtm->lastLockHolder == MyProcPid);
296-
MtmLockCount = 0;
297-
Mtm->lastLockHolder = 0;
298-
LWLockRelease((LWLockId)&Mtm->locks[MTM_STATE_LOCK_ID]);
299-
}
300-
301294
}
302295

303296
/*
@@ -1808,6 +1801,7 @@ void MtmAbortTransaction(MtmTransState* ts)
18081801
void MtmHandleApplyError(void)
18091802
{
18101803
ErrorData *edata = CopyErrorData();
1804+
MtmLockCount = 0; /* LWLocks will be released by AbortTransaction, we just need to clear owr MtmLockCount */
18111805
switch (edata->sqlerrcode) {
18121806
case ERRCODE_DISK_FULL:
18131807
case ERRCODE_INSUFFICIENT_RESOURCES:

0 commit comments

Comments
 (0)