@@ -1128,12 +1128,12 @@ MtmPrePrepareTransaction(MtmCurrentTrans* x)
1128
1128
/*
1129
1129
* Invalid CSN prevent replication of transaction by logical replication
1130
1130
*/
1131
- ts -> isLocal = x -> isReplicated || !x -> containsDML ;
1132
1131
ts -> snapshot = x -> snapshot ;
1133
1132
ts -> csn = MtmAssignCSN ();
1134
1133
ts -> procno = MyProc -> pgprocno ;
1135
1134
ts -> votingCompleted = false;
1136
1135
ts -> participantsMask = (((nodemask_t )1 << Mtm -> nAllNodes ) - 1 ) & ~Mtm -> disabledNodeMask & ~((nodemask_t )1 << (MtmNodeId - 1 ));
1136
+ ts -> isLocal = x -> isReplicated || !x -> containsDML || (ts -> participantsMask == 0 );
1137
1137
ts -> nConfigChanges = Mtm -> nConfigChanges ;
1138
1138
ts -> votedMask = 0 ;
1139
1139
ts -> nSubxids = xactGetCommittedChildren (& subxids );
@@ -1385,6 +1385,7 @@ MtmPostPrepareTransaction(MtmCurrentTrans* x)
1385
1385
if (!ts -> isLocal ) {
1386
1386
Mtm2PCVoting (x , ts );
1387
1387
} else {
1388
+ ts -> status = TRANSACTION_STATUS_UNKNOWN ;
1388
1389
ts -> votingCompleted = true;
1389
1390
}
1390
1391
if (x -> isTwoPhase ) {
@@ -2369,8 +2370,8 @@ static void MtmInitialize()
2369
2370
Mtm -> oldestXid = FirstNormalTransactionId ;
2370
2371
Mtm -> nLiveNodes = 0 ; //MtmNodes;
2371
2372
Mtm -> nAllNodes = MtmNodes ;
2372
- Mtm -> disabledNodeMask = 7 ; //XXXX
2373
- Mtm -> clique = 7 ; // XXXX ! should be inverted !
2373
+ Mtm -> disabledNodeMask = ((( nodemask_t ) 1 << MtmNodes ) - 1 );
2374
+ Mtm -> clique = 0 ;
2374
2375
Mtm -> stalledNodeMask = 0 ;
2375
2376
Mtm -> stoppedNodeMask = 0 ;
2376
2377
Mtm -> deadNodeMask = 0 ;
0 commit comments