2025-03-17 20:58:26 +01:00

87 lines
2.7 KiB
YAML

runOn:
-
minServerVersion: "4.0"
topology: ["single", "replicaset"]
-
minServerVersion: "4.1.7"
topology: ["sharded", "load-balanced"]
database_name: &database_name "retryable-reads-tests"
collection_name: &collection_name "coll"
data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
- {_id: 4, x: 44}
- {_id: 5, x: 55}
tests:
-
description: "Find succeeds on first attempt"
operations:
- &retryable_operation_succeeds
<<: &retryable_operation
name: find
object: collection
arguments:
filter: {}
sort: {_id: 1}
limit: 4
result:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
- {_id: 4, x: 44}
expectations:
- &retryable_command_started_event
command_started_event:
command:
find: *collection_name
filter: {}
sort: {_id: 1}
limit: 4
database_name: *database_name
-
description: "Find succeeds on second attempt with explicit clientOptions"
clientOptions:
retryReads: true
failPoint: &failCommand_failPoint
configureFailPoint: failCommand
mode: { times: 1 }
data:
failCommands: [find]
closeConnection: true
operations: [*retryable_operation_succeeds]
expectations:
- *retryable_command_started_event
- *retryable_command_started_event
-
description: "Find succeeds on second attempt"
failPoint: *failCommand_failPoint
operations: [*retryable_operation_succeeds]
expectations:
- *retryable_command_started_event
- *retryable_command_started_event
-
description: "Find fails on first attempt"
clientOptions:
retryReads: false
failPoint: *failCommand_failPoint
operations:
- &retryable_operation_fails
<<: *retryable_operation
error: true
expectations:
- *retryable_command_started_event
-
description: "Find fails on second attempt"
failPoint:
<<: *failCommand_failPoint
mode: { times: 2 }
operations: [*retryable_operation_fails]
expectations:
- *retryable_command_started_event
- *retryable_command_started_event