Skip to content

Commit 6329349

Browse files
committed
wip POC for DRIVERS-2799
1 parent be1e9e9 commit 6329349

File tree

3 files changed

+127
-41
lines changed

3 files changed

+127
-41
lines changed

tests/UnifiedSpecTests/retryable-writes/bulkWrite-serverErrors.json

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
"schemaVersion": "1.0",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "3.6",
6+
"minServerVersion": "4.0",
77
"topologies": [
88
"replicaset"
99
]
10+
},
11+
{
12+
"minServerVersion": "4.1.7",
13+
"topologies": [
14+
"sharded"
15+
]
1016
}
1117
],
1218
"createEntities": [
@@ -53,20 +59,6 @@
5359
"tests": [
5460
{
5561
"description": "BulkWrite succeeds after retryable writeConcernError in first batch",
56-
"runOnRequirements": [
57-
{
58-
"minServerVersion": "4.0",
59-
"topologies": [
60-
"replicaset"
61-
]
62-
},
63-
{
64-
"minServerVersion": "4.1.7",
65-
"topologies": [
66-
"sharded"
67-
]
68-
}
69-
],
7062
"operations": [
7163
{
7264
"name": "failPoint",

tests/UnifiedSpecTests/retryable-writes/insertOne-serverErrors.json

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
"schemaVersion": "1.0",
44
"runOnRequirements": [
55
{
6-
"minServerVersion": "3.6",
6+
"minServerVersion": "4.0",
77
"topologies": [
88
"replicaset"
99
]
10+
},
11+
{
12+
"minServerVersion": "4.1.7",
13+
"topologies": [
14+
"sharded"
15+
]
1016
}
1117
],
1218
"createEntities": [
@@ -53,20 +59,6 @@
5359
"tests": [
5460
{
5561
"description": "InsertOne succeeds after retryable writeConcernError",
56-
"runOnRequirements": [
57-
{
58-
"minServerVersion": "4.0",
59-
"topologies": [
60-
"replicaset"
61-
]
62-
},
63-
{
64-
"minServerVersion": "4.1.7",
65-
"topologies": [
66-
"sharded"
67-
]
68-
}
69-
],
7062
"operations": [
7163
{
7264
"name": "failPoint",

tests/UnifiedSpecTests/valid-pass/poc-retryable-writes.json

Lines changed: 113 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
{
22
"description": "poc-retryable-writes",
33
"schemaVersion": "1.0",
4-
"runOnRequirements": [
5-
{
6-
"minServerVersion": "3.6",
7-
"topologies": [
8-
"replicaset"
9-
]
10-
}
11-
],
124
"createEntities": [
135
{
146
"client": {
@@ -79,6 +71,14 @@
7971
"tests": [
8072
{
8173
"description": "FindOneAndUpdate is committed on first attempt",
74+
"runOnRequirements": [
75+
{
76+
"minServerVersion": "3.6",
77+
"topologies": [
78+
"replicaset"
79+
]
80+
}
81+
],
8282
"operations": [
8383
{
8484
"name": "failPoint",
@@ -132,6 +132,14 @@
132132
},
133133
{
134134
"description": "FindOneAndUpdate is not committed on first attempt",
135+
"runOnRequirements": [
136+
{
137+
"minServerVersion": "3.6",
138+
"topologies": [
139+
"replicaset"
140+
]
141+
}
142+
],
135143
"operations": [
136144
{
137145
"name": "failPoint",
@@ -188,6 +196,14 @@
188196
},
189197
{
190198
"description": "FindOneAndUpdate is never committed",
199+
"runOnRequirements": [
200+
{
201+
"minServerVersion": "3.6",
202+
"topologies": [
203+
"replicaset"
204+
]
205+
}
206+
],
191207
"operations": [
192208
{
193209
"name": "failPoint",
@@ -403,14 +419,78 @@
403419
]
404420
},
405421
{
406-
"description": "InsertOne fails after multiple retryable writeConcernErrors",
422+
"description": "InsertOne fails after multiple retryable writeConcernErrors (replicaset)",
407423
"runOnRequirements": [
408424
{
409425
"minServerVersion": "4.0",
410426
"topologies": [
411427
"replicaset"
412428
]
429+
}
430+
],
431+
"operations": [
432+
{
433+
"name": "failPoint",
434+
"object": "testRunner",
435+
"arguments": {
436+
"client": "client0",
437+
"failPoint": {
438+
"configureFailPoint": "failCommand",
439+
"mode": {
440+
"times": 2
441+
},
442+
"data": {
443+
"failCommands": [
444+
"insert"
445+
],
446+
"writeConcernError": {
447+
"code": 91,
448+
"errmsg": "Replication is being shut down"
449+
}
450+
}
451+
}
452+
}
413453
},
454+
{
455+
"name": "insertOne",
456+
"object": "collection0",
457+
"arguments": {
458+
"document": {
459+
"_id": 3,
460+
"x": 33
461+
}
462+
},
463+
"expectError": {
464+
"errorLabelsContain": [
465+
"RetryableWriteError"
466+
]
467+
}
468+
}
469+
],
470+
"outcome": [
471+
{
472+
"collectionName": "coll",
473+
"databaseName": "retryable-writes-tests",
474+
"documents": [
475+
{
476+
"_id": 1,
477+
"x": 11
478+
},
479+
{
480+
"_id": 2,
481+
"x": 22
482+
},
483+
{
484+
"_id": 3,
485+
"x": 33
486+
}
487+
]
488+
}
489+
]
490+
},
491+
{
492+
"description": "InsertOne fails after single retryable writeConcernError (sharded)",
493+
"runOnRequirements": [
414494
{
415495
"minServerVersion": "4.1.7",
416496
"topologies": [
@@ -427,7 +507,7 @@
427507
"failPoint": {
428508
"configureFailPoint": "failCommand",
429509
"mode": {
430-
"times": 2
510+
"times": 1
431511
},
432512
"data": {
433513
"failCommands": [
@@ -451,12 +531,34 @@
451531
}
452532
},
453533
"expectError": {
454-
"errorLabelsContain": [
534+
"errorLabelsOmit": [
455535
"RetryableWriteError"
456536
]
457537
}
458538
}
459539
],
540+
"expectEvents": [
541+
{
542+
"client": "client0",
543+
"events": [
544+
{
545+
"commandStartedEvent": {
546+
"command": {
547+
"insert": "coll",
548+
"documents": [
549+
{
550+
"_id": 3,
551+
"x": 33
552+
}
553+
]
554+
},
555+
"commandName": "insert",
556+
"databaseName": "retryable-writes-tests"
557+
}
558+
}
559+
]
560+
}
561+
],
460562
"outcome": [
461563
{
462564
"collectionName": "coll",

0 commit comments

Comments
 (0)