Files
mongo/jstests/sharding/libs/txn_two_phase_commit_util.js

24 lines
985 B
JavaScript

/**
* Utilities for checking transaction coordinator behaviour in two phase commits.
*/
export const checkDecisionIs = function(coordinatorConn, lsid, txnNumber, expectedDecision) {
let coordDoc = coordinatorConn.getDB("config")
.getCollection("transaction_coordinators")
.findOne({"_id.lsid.id": lsid.id, "_id.txnNumber": txnNumber});
assert.neq(null, coordDoc);
assert.eq(expectedDecision, coordDoc.decision.decision);
if (expectedDecision === "commit") {
assert.neq(null, coordDoc.decision.commitTimestamp);
} else {
assert.eq(null, coordDoc.decision.commitTimestamp);
}
};
export const checkDocumentDeleted = function(coordinatorConn, lsid, txnNumber) {
let coordDoc = coordinatorConn.getDB("config")
.getCollection("transaction_coordinators")
.findOne({"_id.lsid.id": lsid.id, "_id.txnNumber": txnNumber});
return null === coordDoc;
};