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

Commit f484245

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

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

multimaster.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,7 +1183,8 @@ void MtmPrecommitTransaction(char const* gid)
11831183
ts->status = TRANSACTION_STATUS_UNKNOWN;
11841184
ts->csn = MtmAssignCSN();
11851185
MtmAdjustSubtransactions(ts);
1186-
MtmSend2PCMessage(ts, MSG_PRECOMMITTED);
1186+
if (Mtm->status != MTM_RECOVERY) // XXXX why?
1187+
MtmSend2PCMessage(ts, MSG_PRECOMMITTED);
11871188
MtmUnlock();
11881189
Assert(replorigin_session_origin != InvalidRepOriginId);
11891190
if (!IsTransactionState()) {
@@ -1627,10 +1628,13 @@ void MtmSend2PCMessage(MtmTransState* ts, MtmMessageCode cmd)
16271628
memcpy(msg.gid, ts->gid, MULTIMASTER_MAX_GID_SIZE);
16281629

16291630
Assert(!MtmIsCoordinator(ts)); /* All broadcasts are now done through logical decoding */
1630-
MTM_TXTRACE(ts, "MtmSend2PCMessage sending %s message to node %d", MtmMessageKindMnem[cmd], ts->gtid.node);
1631-
msg.node = ts->gtid.node;
1632-
msg.dxid = ts->gtid.xid;
1633-
MtmSendMessage(&msg);
1631+
if (!BIT_CHECK(Mtm->disabledNodeMask, ts->gtid.node-1))
1632+
{
1633+
MTM_TXTRACE(ts, "MtmSend2PCMessage sending %s message to node %d", MtmMessageKindMnem[cmd], ts->gtid.node);
1634+
msg.node = ts->gtid.node;
1635+
msg.dxid = ts->gtid.xid;
1636+
MtmSendMessage(&msg);
1637+
}
16341638
}
16351639

16361640
/*
@@ -1741,11 +1745,6 @@ void MtmJoinTransaction(GlobalTransactionId* gtid, csn_t globalSnapshot, nodemas
17411745
if (globalSnapshot != INVALID_CSN) {
17421746
MtmLock(LW_EXCLUSIVE);
17431747

1744-
if (BIT_CHECK(Mtm->disabledNodeMask, gtid->node-1)) {
1745-
MtmUnlock();
1746-
MTM_ELOG(ERROR, "Ignore transaction %llu from disabled node %d", (long64)gtid->xid, gtid->node);
1747-
}
1748-
17491748
liveMask = (((nodemask_t)1 << Mtm->nAllNodes) - 1) & ~Mtm->disabledNodeMask;
17501749
BIT_SET(participantsMask, gtid->node-1);
17511750
if (liveMask & ~participantsMask) {

0 commit comments

Comments
 (0)