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

Commit 66e58b0

Browse files
committed
return back votes filtering for disabled nodes; fix bug with tx filtering in JoinTransaction
1 parent b15bacf commit 66e58b0

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

contrib/mmts/multimaster.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,7 +1171,8 @@ void MtmPrecommitTransaction(char const* gid)
11711171
ts->status = TRANSACTION_STATUS_UNKNOWN;
11721172
ts->csn = MtmAssignCSN();
11731173
MtmAdjustSubtransactions(ts);
1174-
MtmSend2PCMessage(ts, MSG_PRECOMMITTED);
1174+
if (Mtm->status != MTM_RECOVERY) // XXXX why?
1175+
MtmSend2PCMessage(ts, MSG_PRECOMMITTED);
11751176
MtmUnlock();
11761177
Assert(replorigin_session_origin != InvalidRepOriginId);
11771178
if (!IsTransactionState()) {
@@ -1615,10 +1616,13 @@ void MtmSend2PCMessage(MtmTransState* ts, MtmMessageCode cmd)
16151616
memcpy(msg.gid, ts->gid, MULTIMASTER_MAX_GID_SIZE);
16161617

16171618
Assert(!MtmIsCoordinator(ts)); /* All broadcasts are now done through logical decoding */
1618-
MTM_TXTRACE(ts, "MtmSend2PCMessage sending %s message to node %d", MtmMessageKindMnem[cmd], ts->gtid.node);
1619-
msg.node = ts->gtid.node;
1620-
msg.dxid = ts->gtid.xid;
1621-
MtmSendMessage(&msg);
1619+
if (!BIT_CHECK(Mtm->disabledNodeMask, ts->gtid.node-1))
1620+
{
1621+
MTM_TXTRACE(ts, "MtmSend2PCMessage sending %s message to node %d", MtmMessageKindMnem[cmd], ts->gtid.node);
1622+
msg.node = ts->gtid.node;
1623+
msg.dxid = ts->gtid.xid;
1624+
MtmSendMessage(&msg);
1625+
}
16221626
}
16231627

16241628
/*
@@ -1729,11 +1733,6 @@ void MtmJoinTransaction(GlobalTransactionId* gtid, csn_t globalSnapshot, nodemas
17291733
if (globalSnapshot != INVALID_CSN) {
17301734
MtmLock(LW_EXCLUSIVE);
17311735

1732-
if (BIT_CHECK(Mtm->disabledNodeMask, gtid->node-1)) {
1733-
MtmUnlock();
1734-
MTM_ELOG(ERROR, "Ignore transaction %llu from disabled node %d", (long64)gtid->xid, gtid->node);
1735-
}
1736-
17371736
liveMask = (((nodemask_t)1 << Mtm->nAllNodes) - 1) & ~Mtm->disabledNodeMask;
17381737
BIT_SET(participantsMask, gtid->node-1);
17391738
if (liveMask & ~participantsMask) {

0 commit comments

Comments
 (0)