{ "runOn": [ { "minServerVersion": "3.6", "topology": [ "replicaset" ] } ], "data": [ { "_id": 1, "x": 11 }, { "_id": 2, "x": 22 } ], "tests": [ { "description": "ReplaceOne is committed on first attempt", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 1 } }, "operation": { "name": "replaceOne", "arguments": { "filter": { "_id": 1 }, "replacement": { "_id": 1, "x": 111 } } }, "outcome": { "result": { "matchedCount": 1, "modifiedCount": 1, "upsertedCount": 0 }, "collection": { "data": [ { "_id": 1, "x": 111 }, { "_id": 2, "x": 22 } ] } } }, { "description": "ReplaceOne is not committed on first attempt", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 1 }, "data": { "failBeforeCommitExceptionCode": 1 } }, "operation": { "name": "replaceOne", "arguments": { "filter": { "_id": 1 }, "replacement": { "_id": 1, "x": 111 } } }, "outcome": { "result": { "matchedCount": 1, "modifiedCount": 1, "upsertedCount": 0 }, "collection": { "data": [ { "_id": 1, "x": 111 }, { "_id": 2, "x": 22 } ] } } }, { "description": "ReplaceOne is never committed", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 2 }, "data": { "failBeforeCommitExceptionCode": 1 } }, "operation": { "name": "replaceOne", "arguments": { "filter": { "_id": 1 }, "replacement": { "_id": 1, "x": 111 } } }, "outcome": { "error": true, "collection": { "data": [ { "_id": 1, "x": 11 }, { "_id": 2, "x": 22 } ] } } } ] }