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