...
1runOn:
2 -
3 minServerVersion: "4.0"
4 topology: ["single", "replicaset"]
5 -
6 minServerVersion: "4.1.7"
7 topology: ["sharded", "load-balanced"]
8
9database_name: &database_name "retryable-reads-tests"
10bucket_name: "fs"
11
12data:
13 fs.files:
14 -
15 _id: { $oid : "000000000000000000000001" }
16 length: 1
17 chunkSize: 4
18 uploadDate: { $date : "1970-01-01T00:00:00.000Z" }
19 filename: abc
20 metadata: {}
21 fs.chunks:
22 - { _id: { $oid: "000000000000000000000002" }, files_id: { $oid: "000000000000000000000001" }, n: 0, data: { $binary: { base64: "EQ==", subType: "00" } } }
23
24tests:
25 -
26 description: "DownloadByName succeeds after InterruptedAtShutdown"
27 failPoint: &failCommand_failPoint
28 configureFailPoint: failCommand
29 mode: { times: 1 }
30 data: { failCommands: [find], errorCode: 11600 }
31 operations:
32 - &retryable_operation
33 name: download_by_name
34 object: gridfsbucket
35 arguments:
36 filename: abc
37 expectations:
38 - &retryable_command_started_event
39 command_started_event:
40 command:
41 find: fs.files
42 filter: { filename : "abc" }
43 database_name: *database_name
44 - *retryable_command_started_event
45 - &find_chunks_command_started_event
46 command_started_event:
47 command:
48 find: fs.chunks
49 filter: { files_id: { $oid : "000000000000000000000001" }}
50 sort: { n: 1 }
51 database_name: *database_name
52 -
53 description: "DownloadByName succeeds after InterruptedDueToReplStateChange"
54 failPoint:
55 <<: *failCommand_failPoint
56 data: { failCommands: [find], errorCode: 11602 }
57 operations: [*retryable_operation]
58 expectations:
59 - *retryable_command_started_event
60 - *retryable_command_started_event
61 - *find_chunks_command_started_event
62 -
63 description: "DownloadByName succeeds after NotWritablePrimary"
64 failPoint:
65 <<: *failCommand_failPoint
66 data: { failCommands: [find], errorCode: 10107 }
67 operations: [*retryable_operation]
68 expectations:
69 - *retryable_command_started_event
70 - *retryable_command_started_event
71 - *find_chunks_command_started_event
72 -
73 description: "DownloadByName succeeds after NotPrimaryNoSecondaryOk"
74 failPoint:
75 <<: *failCommand_failPoint
76 data: { failCommands: [find], errorCode: 13435 }
77 operations: [*retryable_operation]
78 expectations:
79 - *retryable_command_started_event
80 - *retryable_command_started_event
81 - *find_chunks_command_started_event
82 -
83 description: "DownloadByName succeeds after NotPrimaryOrSecondary"
84 failPoint:
85 <<: *failCommand_failPoint
86 data: { failCommands: [find], errorCode: 13436 }
87 operations: [*retryable_operation]
88 expectations:
89 - *retryable_command_started_event
90 - *retryable_command_started_event
91 - *find_chunks_command_started_event
92 -
93 description: "DownloadByName succeeds after PrimarySteppedDown"
94 failPoint:
95 <<: *failCommand_failPoint
96 data: { failCommands: [find], errorCode: 189 }
97 operations: [*retryable_operation]
98 expectations:
99 - *retryable_command_started_event
100 - *retryable_command_started_event
101 - *find_chunks_command_started_event
102 -
103 description: "DownloadByName succeeds after ShutdownInProgress"
104 failPoint:
105 <<: *failCommand_failPoint
106 data: { failCommands: [find], errorCode: 91 }
107 operations: [*retryable_operation]
108 expectations:
109 - *retryable_command_started_event
110 - *retryable_command_started_event
111 - *find_chunks_command_started_event
112 -
113 description: "DownloadByName succeeds after HostNotFound"
114 failPoint:
115 <<: *failCommand_failPoint
116 data: { failCommands: [find], errorCode: 7 }
117 operations: [*retryable_operation]
118 expectations:
119 - *retryable_command_started_event
120 - *retryable_command_started_event
121 - *find_chunks_command_started_event
122 -
123 description: "DownloadByName succeeds after HostUnreachable"
124 failPoint:
125 <<: *failCommand_failPoint
126 data: { failCommands: [find], errorCode: 6 }
127 operations: [*retryable_operation]
128 expectations:
129 - *retryable_command_started_event
130 - *retryable_command_started_event
131 - *find_chunks_command_started_event
132 -
133 description: "DownloadByName succeeds after NetworkTimeout"
134 failPoint:
135 <<: *failCommand_failPoint
136 data: { failCommands: [find], errorCode: 89 }
137 operations: [*retryable_operation]
138 expectations:
139 - *retryable_command_started_event
140 - *retryable_command_started_event
141 - *find_chunks_command_started_event
142 -
143 description: "DownloadByName succeeds after SocketException"
144 failPoint:
145 <<: *failCommand_failPoint
146 data: { failCommands: [find], errorCode: 9001 }
147 operations: [*retryable_operation]
148 expectations:
149 - *retryable_command_started_event
150 - *retryable_command_started_event
151 - *find_chunks_command_started_event
152 -
153 description: "DownloadByName fails after two NotWritablePrimary errors"
154 failPoint:
155 <<: *failCommand_failPoint
156 mode: { times: 2 }
157 data: { failCommands: [find], errorCode: 10107 }
158 operations:
159 - &retryable_operation_fails
160 <<: *retryable_operation
161 error: true
162 expectations:
163 - *retryable_command_started_event
164 - *retryable_command_started_event
165 -
166 description: "DownloadByName fails after NotWritablePrimary when retryReads is false"
167 clientOptions:
168 retryReads: false
169 failPoint:
170 <<: *failCommand_failPoint
171 data: { failCommands: [find], errorCode: 10107 }
172 operations: [*retryable_operation_fails]
173 expectations:
174 - *retryable_command_started_event
View as plain text