{ "runOn": [ { "minServerVersion": "3.6", "topology": [ "replicaset" ] } ], "data": [ { "_id": 1, "x": 11 }, { "_id": 2, "x": 22 } ], "tests": [ { "description": "FindOneAndDelete is committed on first attempt", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 1 } }, "operation": { "name": "findOneAndDelete", "arguments": { "filter": { "x": { "$gte": 11 } }, "sort": { "x": 1 } } }, "outcome": { "result": { "_id": 1, "x": 11 }, "collection": { "data": [ { "_id": 2, "x": 22 } ] } } }, { "description": "FindOneAndDelete is not committed on first attempt", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 1 }, "data": { "failBeforeCommitExceptionCode": 1 } }, "operation": { "name": "findOneAndDelete", "arguments": { "filter": { "x": { "$gte": 11 } }, "sort": { "x": 1 } } }, "outcome": { "result": { "_id": 1, "x": 11 }, "collection": { "data": [ { "_id": 2, "x": 22 } ] } } }, { "description": "FindOneAndDelete is never committed", "failPoint": { "configureFailPoint": "onPrimaryTransactionalWrite", "mode": { "times": 2 }, "data": { "failBeforeCommitExceptionCode": 1 } }, "operation": { "name": "findOneAndDelete", "arguments": { "filter": { "x": { "$gte": 11 } }, "sort": { "x": 1 } } }, "outcome": { "error": true, "collection": { "data": [ { "_id": 1, "x": 11 }, { "_id": 2, "x": 22 } ] } } } ] }