Skip to content

Commit 85c7597

Browse files
committed
Fix several places where error was thrown under exclusive mtm lock
1 parent 86746e5 commit 85c7597

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

contrib/mmts/multimaster.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1503,6 +1503,7 @@ MtmEndTransaction(MtmCurrentTrans* x, bool commit)
15031503
if (!(ts->status == TRANSACTION_STATUS_UNKNOWN
15041504
|| (ts->status == TRANSACTION_STATUS_IN_PROGRESS && Mtm->status == MTM_RECOVERY)))
15051505
{
1506+
MtmUnlock();
15061507
MTM_ELOG(ERROR, "Attempt to commit %s transaction %s (%llu)",
15071508
MtmTxnStatusMnem[ts->status], ts->gid, (long64)ts->xid);
15081509
}
@@ -2131,7 +2132,7 @@ bool MtmIsRecoveredNode(int nodeId)
21312132
{
21322133
if (BIT_CHECK(Mtm->disabledNodeMask, nodeId-1)) {
21332134
if (!MtmIsRecoverySession) {
2134-
MTM_ELOG(ERROR, "Node %d is marked as disabled but is not in recovery mode", nodeId);
2135+
MTM_ELOG(WARNING, "Node %d is marked as disabled but is not in recovery mode", nodeId);
21352136
}
21362137
return true;
21372138
} else {
@@ -2225,6 +2226,7 @@ MtmLockCluster(void)
22252226
}
22262227
MtmLock(LW_EXCLUSIVE);
22272228
if (BIT_CHECK(Mtm->originLockNodeMask, MtmNodeId-1)) {
2229+
MtmUnlock();
22282230
elog(ERROR, "There is already pending exclusive lock");
22292231
}
22302232
BIT_SET(Mtm->originLockNodeMask, MtmNodeId-1);

0 commit comments

Comments
 (0)