1{
2 "runOn": [
3 {
4 "minServerVersion": "4.0",
5 "topology": [
6 "single",
7 "replicaset"
8 ]
9 },
10 {
11 "minServerVersion": "4.1.7",
12 "topology": [
13 "sharded",
14 "load-balanced"
15 ]
16 }
17 ],
18 "database_name": "retryable-reads-tests",
19 "bucket_name": "fs",
20 "data": {
21 "fs.files": [
22 {
23 "_id": {
24 "$oid": "000000000000000000000001"
25 },
26 "length": 1,
27 "chunkSize": 4,
28 "uploadDate": {
29 "$date": "1970-01-01T00:00:00.000Z"
30 },
31 "filename": "abc",
32 "metadata": {}
33 }
34 ],
35 "fs.chunks": [
36 {
37 "_id": {
38 "$oid": "000000000000000000000002"
39 },
40 "files_id": {
41 "$oid": "000000000000000000000001"
42 },
43 "n": 0,
44 "data": {
45 "$binary": {
46 "base64": "EQ==",
47 "subType": "00"
48 }
49 }
50 }
51 ]
52 },
53 "tests": [
54 {
55 "description": "DownloadByName succeeds on first attempt",
56 "operations": [
57 {
58 "name": "download_by_name",
59 "object": "gridfsbucket",
60 "arguments": {
61 "filename": "abc"
62 }
63 }
64 ],
65 "expectations": [
66 {
67 "command_started_event": {
68 "command": {
69 "find": "fs.files",
70 "filter": {
71 "filename": "abc"
72 }
73 },
74 "database_name": "retryable-reads-tests"
75 }
76 },
77 {
78 "command_started_event": {
79 "command": {
80 "find": "fs.chunks",
81 "filter": {
82 "files_id": {
83 "$oid": "000000000000000000000001"
84 }
85 },
86 "sort": {
87 "n": 1
88 }
89 },
90 "database_name": "retryable-reads-tests"
91 }
92 }
93 ]
94 },
95 {
96 "description": "DownloadByName succeeds on second attempt",
97 "failPoint": {
98 "configureFailPoint": "failCommand",
99 "mode": {
100 "times": 1
101 },
102 "data": {
103 "failCommands": [
104 "find"
105 ],
106 "closeConnection": true
107 }
108 },
109 "operations": [
110 {
111 "name": "download_by_name",
112 "object": "gridfsbucket",
113 "arguments": {
114 "filename": "abc"
115 }
116 }
117 ],
118 "expectations": [
119 {
120 "command_started_event": {
121 "command": {
122 "find": "fs.files",
123 "filter": {
124 "filename": "abc"
125 }
126 },
127 "database_name": "retryable-reads-tests"
128 }
129 },
130 {
131 "command_started_event": {
132 "command": {
133 "find": "fs.files",
134 "filter": {
135 "filename": "abc"
136 }
137 },
138 "database_name": "retryable-reads-tests"
139 }
140 },
141 {
142 "command_started_event": {
143 "command": {
144 "find": "fs.chunks",
145 "filter": {
146 "files_id": {
147 "$oid": "000000000000000000000001"
148 }
149 },
150 "sort": {
151 "n": 1
152 }
153 },
154 "database_name": "retryable-reads-tests"
155 }
156 }
157 ]
158 },
159 {
160 "description": "DownloadByName fails on first attempt",
161 "clientOptions": {
162 "retryReads": false
163 },
164 "failPoint": {
165 "configureFailPoint": "failCommand",
166 "mode": {
167 "times": 1
168 },
169 "data": {
170 "failCommands": [
171 "find"
172 ],
173 "closeConnection": true
174 }
175 },
176 "operations": [
177 {
178 "name": "download_by_name",
179 "object": "gridfsbucket",
180 "arguments": {
181 "filename": "abc"
182 },
183 "error": true
184 }
185 ],
186 "expectations": [
187 {
188 "command_started_event": {
189 "command": {
190 "find": "fs.files",
191 "filter": {
192 "filename": "abc"
193 }
194 },
195 "database_name": "retryable-reads-tests"
196 }
197 }
198 ]
199 },
200 {
201 "description": "DownloadByName fails on second attempt",
202 "failPoint": {
203 "configureFailPoint": "failCommand",
204 "mode": {
205 "times": 2
206 },
207 "data": {
208 "failCommands": [
209 "find"
210 ],
211 "closeConnection": true
212 }
213 },
214 "operations": [
215 {
216 "name": "download_by_name",
217 "object": "gridfsbucket",
218 "arguments": {
219 "filename": "abc"
220 },
221 "error": true
222 }
223 ],
224 "expectations": [
225 {
226 "command_started_event": {
227 "command": {
228 "find": "fs.files",
229 "filter": {
230 "filename": "abc"
231 }
232 },
233 "database_name": "retryable-reads-tests"
234 }
235 },
236 {
237 "command_started_event": {
238 "command": {
239 "find": "fs.files",
240 "filter": {
241 "filename": "abc"
242 }
243 },
244 "database_name": "retryable-reads-tests"
245 }
246 }
247 ]
248 }
249 ]
250}
View as plain text