1{
2 "description": "mongos-unpin",
3 "schemaVersion": "1.4",
4 "runOnRequirements": [
5 {
6 "minServerVersion": "4.2",
7 "maxServerVersion": "7.99",
8 "topologies": [
9 "sharded-replicaset"
10 ]
11 }
12 ],
13 "createEntities": [
14 {
15 "client": {
16 "id": "client0",
17 "useMultipleMongoses": true
18 }
19 },
20 {
21 "database": {
22 "id": "database0",
23 "client": "client0",
24 "databaseName": "mongos-unpin-db"
25 }
26 },
27 {
28 "collection": {
29 "id": "collection0",
30 "database": "database0",
31 "collectionName": "test"
32 }
33 },
34 {
35 "session": {
36 "id": "session0",
37 "client": "client0"
38 }
39 }
40 ],
41 "initialData": [
42 {
43 "collectionName": "test",
44 "databaseName": "mongos-unpin-db",
45 "documents": []
46 }
47 ],
48 "_yamlAnchors": {
49 "anchors": 24
50 },
51 "tests": [
52 {
53 "description": "unpin after TransientTransactionError error on commit",
54 "runOnRequirements": [
55 {
56 "serverless": "forbid"
57 }
58 ],
59 "operations": [
60 {
61 "name": "startTransaction",
62 "object": "session0"
63 },
64 {
65 "name": "insertOne",
66 "object": "collection0",
67 "arguments": {
68 "document": {
69 "x": 1
70 },
71 "session": "session0"
72 }
73 },
74 {
75 "name": "targetedFailPoint",
76 "object": "testRunner",
77 "arguments": {
78 "session": "session0",
79 "failPoint": {
80 "configureFailPoint": "failCommand",
81 "mode": {
82 "times": 1
83 },
84 "data": {
85 "failCommands": [
86 "commitTransaction"
87 ],
88 "errorCode": 24
89 }
90 }
91 }
92 },
93 {
94 "name": "commitTransaction",
95 "object": "session0",
96 "expectError": {
97 "errorCode": 24,
98 "errorLabelsContain": [
99 "TransientTransactionError"
100 ],
101 "errorLabelsOmit": [
102 "UnknownTransactionCommitResult"
103 ]
104 }
105 },
106 {
107 "name": "assertSessionUnpinned",
108 "object": "testRunner",
109 "arguments": {
110 "session": "session0"
111 }
112 },
113 {
114 "name": "startTransaction",
115 "object": "session0"
116 },
117 {
118 "name": "insertOne",
119 "object": "collection0",
120 "arguments": {
121 "document": {
122 "x": 1
123 },
124 "session": "session0"
125 }
126 },
127 {
128 "name": "abortTransaction",
129 "object": "session0"
130 }
131 ]
132 },
133 {
134 "description": "unpin on successful abort",
135 "operations": [
136 {
137 "name": "startTransaction",
138 "object": "session0"
139 },
140 {
141 "name": "insertOne",
142 "object": "collection0",
143 "arguments": {
144 "document": {
145 "x": 1
146 },
147 "session": "session0"
148 }
149 },
150 {
151 "name": "abortTransaction",
152 "object": "session0"
153 },
154 {
155 "name": "assertSessionUnpinned",
156 "object": "testRunner",
157 "arguments": {
158 "session": "session0"
159 }
160 }
161 ]
162 },
163 {
164 "description": "unpin after non-transient error on abort",
165 "runOnRequirements": [
166 {
167 "serverless": "forbid"
168 }
169 ],
170 "operations": [
171 {
172 "name": "startTransaction",
173 "object": "session0"
174 },
175 {
176 "name": "insertOne",
177 "object": "collection0",
178 "arguments": {
179 "document": {
180 "x": 1
181 },
182 "session": "session0"
183 }
184 },
185 {
186 "name": "targetedFailPoint",
187 "object": "testRunner",
188 "arguments": {
189 "session": "session0",
190 "failPoint": {
191 "configureFailPoint": "failCommand",
192 "mode": {
193 "times": 1
194 },
195 "data": {
196 "failCommands": [
197 "abortTransaction"
198 ],
199 "errorCode": 24
200 }
201 }
202 }
203 },
204 {
205 "name": "abortTransaction",
206 "object": "session0"
207 },
208 {
209 "name": "assertSessionUnpinned",
210 "object": "testRunner",
211 "arguments": {
212 "session": "session0"
213 }
214 },
215 {
216 "name": "startTransaction",
217 "object": "session0"
218 },
219 {
220 "name": "insertOne",
221 "object": "collection0",
222 "arguments": {
223 "document": {
224 "x": 1
225 },
226 "session": "session0"
227 }
228 },
229 {
230 "name": "abortTransaction",
231 "object": "session0"
232 }
233 ]
234 },
235 {
236 "description": "unpin after TransientTransactionError error on abort",
237 "operations": [
238 {
239 "name": "startTransaction",
240 "object": "session0"
241 },
242 {
243 "name": "insertOne",
244 "object": "collection0",
245 "arguments": {
246 "document": {
247 "x": 1
248 },
249 "session": "session0"
250 }
251 },
252 {
253 "name": "targetedFailPoint",
254 "object": "testRunner",
255 "arguments": {
256 "session": "session0",
257 "failPoint": {
258 "configureFailPoint": "failCommand",
259 "mode": {
260 "times": 1
261 },
262 "data": {
263 "failCommands": [
264 "abortTransaction"
265 ],
266 "errorCode": 91
267 }
268 }
269 }
270 },
271 {
272 "name": "abortTransaction",
273 "object": "session0"
274 },
275 {
276 "name": "assertSessionUnpinned",
277 "object": "testRunner",
278 "arguments": {
279 "session": "session0"
280 }
281 },
282 {
283 "name": "startTransaction",
284 "object": "session0"
285 },
286 {
287 "name": "insertOne",
288 "object": "collection0",
289 "arguments": {
290 "document": {
291 "x": 1
292 },
293 "session": "session0"
294 }
295 },
296 {
297 "name": "abortTransaction",
298 "object": "session0"
299 }
300 ]
301 },
302 {
303 "description": "unpin when a new transaction is started",
304 "operations": [
305 {
306 "name": "startTransaction",
307 "object": "session0"
308 },
309 {
310 "name": "insertOne",
311 "object": "collection0",
312 "arguments": {
313 "document": {
314 "x": 1
315 },
316 "session": "session0"
317 }
318 },
319 {
320 "name": "commitTransaction",
321 "object": "session0"
322 },
323 {
324 "name": "assertSessionPinned",
325 "object": "testRunner",
326 "arguments": {
327 "session": "session0"
328 }
329 },
330 {
331 "name": "startTransaction",
332 "object": "session0"
333 },
334 {
335 "name": "assertSessionUnpinned",
336 "object": "testRunner",
337 "arguments": {
338 "session": "session0"
339 }
340 }
341 ]
342 },
343 {
344 "description": "unpin when a non-transaction write operation uses a session",
345 "operations": [
346 {
347 "name": "startTransaction",
348 "object": "session0"
349 },
350 {
351 "name": "insertOne",
352 "object": "collection0",
353 "arguments": {
354 "document": {
355 "x": 1
356 },
357 "session": "session0"
358 }
359 },
360 {
361 "name": "commitTransaction",
362 "object": "session0"
363 },
364 {
365 "name": "assertSessionPinned",
366 "object": "testRunner",
367 "arguments": {
368 "session": "session0"
369 }
370 },
371 {
372 "name": "insertOne",
373 "object": "collection0",
374 "arguments": {
375 "document": {
376 "x": 1
377 },
378 "session": "session0"
379 }
380 },
381 {
382 "name": "assertSessionUnpinned",
383 "object": "testRunner",
384 "arguments": {
385 "session": "session0"
386 }
387 }
388 ]
389 },
390 {
391 "description": "unpin when a non-transaction read operation uses a session",
392 "operations": [
393 {
394 "name": "startTransaction",
395 "object": "session0"
396 },
397 {
398 "name": "insertOne",
399 "object": "collection0",
400 "arguments": {
401 "document": {
402 "x": 1
403 },
404 "session": "session0"
405 }
406 },
407 {
408 "name": "commitTransaction",
409 "object": "session0"
410 },
411 {
412 "name": "assertSessionPinned",
413 "object": "testRunner",
414 "arguments": {
415 "session": "session0"
416 }
417 },
418 {
419 "name": "find",
420 "object": "collection0",
421 "arguments": {
422 "filter": {
423 "x": 1
424 },
425 "session": "session0"
426 }
427 },
428 {
429 "name": "assertSessionUnpinned",
430 "object": "testRunner",
431 "arguments": {
432 "session": "session0"
433 }
434 }
435 ]
436 }
437 ]
438}
View as plain text