@@ -1171,7 +1171,8 @@ void MtmPrecommitTransaction(char const* gid)
1171
1171
ts -> status = TRANSACTION_STATUS_UNKNOWN ;
1172
1172
ts -> csn = MtmAssignCSN ();
1173
1173
MtmAdjustSubtransactions (ts );
1174
- MtmSend2PCMessage (ts , MSG_PRECOMMITTED );
1174
+ if (Mtm -> status != MTM_RECOVERY ) // XXXX why?
1175
+ MtmSend2PCMessage (ts , MSG_PRECOMMITTED );
1175
1176
MtmUnlock ();
1176
1177
Assert (replorigin_session_origin != InvalidRepOriginId );
1177
1178
if (!IsTransactionState ()) {
@@ -1615,10 +1616,13 @@ void MtmSend2PCMessage(MtmTransState* ts, MtmMessageCode cmd)
1615
1616
memcpy (msg .gid , ts -> gid , MULTIMASTER_MAX_GID_SIZE );
1616
1617
1617
1618
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
+ }
1622
1626
}
1623
1627
1624
1628
/*
@@ -1729,11 +1733,6 @@ void MtmJoinTransaction(GlobalTransactionId* gtid, csn_t globalSnapshot, nodemas
1729
1733
if (globalSnapshot != INVALID_CSN ) {
1730
1734
MtmLock (LW_EXCLUSIVE );
1731
1735
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
-
1737
1736
liveMask = (((nodemask_t )1 << Mtm -> nAllNodes ) - 1 ) & ~Mtm -> disabledNodeMask ;
1738
1737
BIT_SET (participantsMask , gtid -> node - 1 );
1739
1738
if (liveMask & ~participantsMask ) {
0 commit comments