{ "runOn": [ { "minServerVersion": "4.0", "topology": [ "replicaset" ] }, { "minServerVersion": "4.1.7", "topology": [ "sharded", "load-balanced" ], "serverless": "forbid" } ], "database_name": "retryable-reads-tests", "collection_name": "coll", "data": [ { "_id": 1, "x": 11 } ], "tests": [ { "description": "db.watch succeeds on first attempt", "operations": [ { "name": "watch", "object": "database" } ], "expectations": [ { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } } ] }, { "description": "db.watch succeeds on second attempt", "failPoint": { "configureFailPoint": "failCommand", "mode": { "times": 1 }, "data": { "failCommands": [ "aggregate" ], "closeConnection": true } }, "operations": [ { "name": "watch", "object": "database" } ], "expectations": [ { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } }, { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } } ] }, { "description": "db.watch fails on first attempt", "clientOptions": { "retryReads": false }, "failPoint": { "configureFailPoint": "failCommand", "mode": { "times": 1 }, "data": { "failCommands": [ "aggregate" ], "closeConnection": true } }, "operations": [ { "name": "watch", "object": "database", "error": true } ], "expectations": [ { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } } ] }, { "description": "db.watch fails on second attempt", "failPoint": { "configureFailPoint": "failCommand", "mode": { "times": 2 }, "data": { "failCommands": [ "aggregate" ], "closeConnection": true } }, "operations": [ { "name": "watch", "object": "database", "error": true } ], "expectations": [ { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } }, { "command_started_event": { "command": { "aggregate": 1, "cursor": {}, "pipeline": [ { "$changeStream": {} } ] }, "database_name": "retryable-reads-tests" } } ] } ] }