1runOn: 2 - 3 minServerVersion: "4.0" 4 topology: ["single", "replicaset"] 5 - 6 minServerVersion: "4.1.7" 7 topology: ["sharded"] 8 9database_name: &database_name "retryable-reads-tests" 10collection_name: &collection_name "coll" 11 12data: 13 - { _id: 1, x: 11 } 14 - { _id: 2, x: 22 } 15 16tests: 17 - 18 description: "Count succeeds after InterruptedAtShutdown" 19 failPoint: &failCommand_failPoint 20 configureFailPoint: failCommand 21 mode: { times: 1 } 22 data: { failCommands: [aggregate], errorCode: 11600 } 23 operations: 24 - &retryable_operation_succeeds 25 <<: &retryable_operation 26 name: count 27 object: collection 28 arguments: { filter: { } } 29 result: 2 30 expectations: 31 - &retryable_command_started_event 32 command_started_event: 33 command: 34 count: *collection_name 35 database_name: *database_name 36 - *retryable_command_started_event 37 - 38 description: "Count succeeds after InterruptedDueToReplStateChange" 39 failPoint: 40 <<: *failCommand_failPoint 41 data: { failCommands: [count], errorCode: 11602 } 42 operations: [*retryable_operation_succeeds] 43 expectations: 44 - *retryable_command_started_event 45 - *retryable_command_started_event 46 - 47 description: "Count succeeds after NotMaster" 48 failPoint: 49 <<: *failCommand_failPoint 50 data: { failCommands: [count], errorCode: 10107 } 51 operations: [*retryable_operation_succeeds] 52 expectations: 53 - *retryable_command_started_event 54 - *retryable_command_started_event 55 - 56 description: "Count succeeds after NotMasterNoSlaveOk" 57 failPoint: 58 <<: *failCommand_failPoint 59 data: { failCommands: [count], errorCode: 13435 } 60 operations: [*retryable_operation_succeeds] 61 expectations: 62 - *retryable_command_started_event 63 - *retryable_command_started_event 64 - 65 description: "Count succeeds after NotMasterOrSecondary" 66 failPoint: 67 <<: *failCommand_failPoint 68 data: { failCommands: [count], errorCode: 13436 } 69 operations: [*retryable_operation_succeeds] 70 expectations: 71 - *retryable_command_started_event 72 - *retryable_command_started_event 73 - 74 description: "Count succeeds after PrimarySteppedDown" 75 failPoint: 76 <<: *failCommand_failPoint 77 data: { failCommands: [count], errorCode: 189 } 78 operations: [*retryable_operation_succeeds] 79 expectations: 80 - *retryable_command_started_event 81 - *retryable_command_started_event 82 - 83 description: "Count succeeds after ShutdownInProgress" 84 failPoint: 85 <<: *failCommand_failPoint 86 data: { failCommands: [count], errorCode: 91 } 87 operations: [*retryable_operation_succeeds] 88 expectations: 89 - *retryable_command_started_event 90 - *retryable_command_started_event 91 - 92 description: "Count succeeds after HostNotFound" 93 failPoint: 94 <<: *failCommand_failPoint 95 data: { failCommands: [count], errorCode: 7 } 96 operations: [*retryable_operation_succeeds] 97 expectations: 98 - *retryable_command_started_event 99 - *retryable_command_started_event 100 - 101 description: "Count succeeds after HostUnreachable" 102 failPoint: 103 <<: *failCommand_failPoint 104 data: { failCommands: [count], errorCode: 6 } 105 operations: [*retryable_operation_succeeds] 106 expectations: 107 - *retryable_command_started_event 108 - *retryable_command_started_event 109 - 110 description: "Count succeeds after NetworkTimeout" 111 failPoint: 112 <<: *failCommand_failPoint 113 data: { failCommands: [count], errorCode: 89 } 114 operations: [*retryable_operation_succeeds] 115 expectations: 116 - *retryable_command_started_event 117 - *retryable_command_started_event 118 - 119 description: "Count succeeds after SocketException" 120 failPoint: 121 <<: *failCommand_failPoint 122 data: { failCommands: [count], errorCode: 9001 } 123 operations: [*retryable_operation_succeeds] 124 expectations: 125 - *retryable_command_started_event 126 - *retryable_command_started_event 127 - 128 description: "Count fails after two NotMaster errors" 129 failPoint: 130 <<: *failCommand_failPoint 131 mode: { times: 2 } 132 data: { failCommands: [count], errorCode: 10107 } 133 operations: 134 - &retryable_operation_fails 135 <<: *retryable_operation 136 error: true 137 expectations: 138 - *retryable_command_started_event 139 - *retryable_command_started_event 140 - 141 description: "Count fails after NotMaster when retryReads is false" 142 clientOptions: 143 retryReads: false 144 failPoint: 145 <<: *failCommand_failPoint 146 data: { failCommands: [count], errorCode: 10107 } 147 operations: [*retryable_operation_fails] 148 expectations: 149 - *retryable_command_started_event 150 151