We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see ourdocumentation.
There was an error while loading.Please reload this page.
1 parent7bea7be commitd65f166Copy full SHA for d65f166
multimaster.c
@@ -1203,8 +1203,6 @@ void MtmPrecommitTransaction(char const* gid)
1203
ts->status=TRANSACTION_STATUS_UNKNOWN;
1204
ts->csn=MtmAssignCSN();
1205
MtmAdjustSubtransactions(ts);
1206
-if (Mtm->status!=MTM_RECOVERY)// XXXX why?
1207
-MtmSend2PCMessage(ts,MSG_PRECOMMITTED);
1208
MtmUnlock();
1209
Assert(replorigin_session_origin!=InvalidRepOriginId);
1210
if (!IsTransactionState()) {
@@ -1215,6 +1213,11 @@ void MtmPrecommitTransaction(char const* gid)
1215
1213
}else {
1216
1214
SetPreparedTransactionState(ts->gid,MULTIMASTER_PRECOMMITTED);
1217
}
+/*
+ * We should send MSG_PRECOMMITTED only after SetPreparedTransactionState()
1218
+ */
1219
+if (Mtm->status!=MTM_RECOVERY)
1220
+MtmSend2PCMessage(ts,MSG_PRECOMMITTED);
1221
1222
MTM_ELOG(WARNING,"MtmPrecommitTransaction: transaction '%s' is already in %s state",gid,MtmTxnStatusMnem[ts->status]);
1223