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