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