Skip to content

Commit 52ee2e9

Browse files
committed
Fix several places where error was thrown under exclusive mtm lock
1 parent e681d3f commit 52ee2e9

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
@@ -1489,6 +1489,7 @@ MtmEndTransaction(MtmCurrentTrans* x, bool commit)
14891489
if (!(ts->status == TRANSACTION_STATUS_UNKNOWN
14901490
|| (ts->status == TRANSACTION_STATUS_IN_PROGRESS && Mtm->status == MTM_RECOVERY)))
14911491
{
1492+
MtmUnlock();
14921493
MTM_ELOG(ERROR, "Attempt to commit %s transaction %s (%llu)",
14931494
MtmTxnStatusMnem[ts->status], ts->gid, (long64)ts->xid);
14941495
}
@@ -2016,7 +2017,7 @@ bool MtmIsRecoveredNode(int nodeId)
20162017
{
20172018
if (BIT_CHECK(Mtm->disabledNodeMask, nodeId-1)) {
20182019
if (!MtmIsRecoverySession) {
2019-
MTM_ELOG(ERROR, "Node %d is marked as disabled but is not in recovery mode", nodeId);
2020+
MTM_ELOG(WARNING, "Node %d is marked as disabled but is not in recovery mode", nodeId);
20202021
}
20212022
return true;
20222023
} else {
@@ -2087,6 +2088,7 @@ MtmLockCluster(void)
20872088
}
20882089
MtmLock(LW_EXCLUSIVE);
20892090
if (BIT_CHECK(Mtm->originLockNodeMask, MtmNodeId-1)) {
2091+
MtmUnlock();
20902092
elog(ERROR, "There is already pending exclusive lock");
20912093
}
20922094
BIT_SET(Mtm->originLockNodeMask, MtmNodeId-1);

0 commit comments

Comments
 (0)