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