Skip to content

Commit 4a201aa

Browse files
author
iwysiu
authored
GODRIVER-1528 retryableWrites spec improvements (mongodb#336)
1 parent 5262a76 commit 4a201aa

15 files changed

+146
-71
lines changed

data/retryable-writes/bulkWrite-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["update"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "bulkWrite"
2525
arguments:
@@ -61,7 +61,7 @@ tests:
6161
writeConcernError:
6262
code: 91
6363
errmsg: Replication is being shut down
64-
errorLabels: ["RetryableWriteError"] # SPEC-1565
64+
errorLabels: ["RetryableWriteError"]
6565
operation:
6666
name: "bulkWrite"
6767
arguments:

data/retryable-writes/deleteOne-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["delete"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "deleteOne"
2525
arguments:
@@ -40,7 +40,7 @@ tests:
4040
writeConcernError:
4141
code: 91
4242
errmsg: Replication is being shut down
43-
errorLabels: ["RetryableWriteError"] # SPEC-1565
43+
errorLabels: ["RetryableWriteError"]
4444
operation:
4545
name: "deleteOne"
4646
arguments:

data/retryable-writes/findOneAndDelete-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["findAndModify"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "findOneAndDelete"
2525
arguments:
@@ -40,7 +40,7 @@ tests:
4040
writeConcernError:
4141
code: 91
4242
errmsg: Replication is being shut down
43-
errorLabels: ["RetryableWriteError"] # SPEC-1565
43+
errorLabels: ["RetryableWriteError"]
4444
operation:
4545
name: "findOneAndDelete"
4646
arguments:

data/retryable-writes/findOneAndReplace-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["findAndModify"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "findOneAndReplace"
2525
arguments:
@@ -42,7 +42,7 @@ tests:
4242
writeConcernError:
4343
code: 91
4444
errmsg: Replication is being shut down
45-
errorLabels: ["RetryableWriteError"] # SPEC-1565
45+
errorLabels: ["RetryableWriteError"]
4646
operation:
4747
name: "findOneAndReplace"
4848
arguments:

data/retryable-writes/findOneAndUpdate-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["findAndModify"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "findOneAndUpdate"
2525
arguments:
@@ -42,7 +42,7 @@ tests:
4242
writeConcernError:
4343
code: 91
4444
errmsg: Replication is being shut down
45-
errorLabels: ["RetryableWriteError"] # SPEC-1565
45+
errorLabels: ["RetryableWriteError"]
4646
operation:
4747
name: "findOneAndUpdate"
4848
arguments:

data/retryable-writes/insertMany-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ tests:
1818
data:
1919
failCommands: ["insert"]
2020
errorCode: 189
21-
errorLabels: ["RetryableWriteError"] # SPEC-1565
21+
errorLabels: ["RetryableWriteError"]
2222
operation:
2323
name: "insertMany"
2424
arguments:
@@ -44,7 +44,7 @@ tests:
4444
writeConcernError:
4545
code: 91
4646
errmsg: Replication is being shut down
47-
errorLabels: ["RetryableWriteError"] # SPEC-1565
47+
errorLabels: ["RetryableWriteError"]
4848
operation:
4949
name: "insertMany"
5050
arguments:

data/retryable-writes/insertOne-serverErrors.json

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,53 @@
6969
}
7070
}
7171
},
72+
{
73+
"description": "InsertOne fails after connection failure when retryWrites option is false",
74+
"clientOptions": {
75+
"retryWrites": false
76+
},
77+
"failPoint": {
78+
"configureFailPoint": "failCommand",
79+
"mode": {
80+
"times": 1
81+
},
82+
"data": {
83+
"failCommands": [
84+
"insert"
85+
],
86+
"closeConnection": true
87+
}
88+
},
89+
"operation": {
90+
"name": "insertOne",
91+
"arguments": {
92+
"document": {
93+
"_id": 3,
94+
"x": 33
95+
}
96+
}
97+
},
98+
"outcome": {
99+
"error": true,
100+
"result": {
101+
"errorLabelsOmit": [
102+
"RetryableWriteError"
103+
]
104+
},
105+
"collection": {
106+
"data": [
107+
{
108+
"_id": 1,
109+
"x": 11
110+
},
111+
{
112+
"_id": 2,
113+
"x": 22
114+
}
115+
]
116+
}
117+
}
118+
},
72119
{
73120
"description": "InsertOne succeeds after NotMaster",
74121
"failPoint": {

data/retryable-writes/insertOne-serverErrors.yml

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,30 @@ tests:
3131
- { _id: 1, x: 11 }
3232
- { _id: 2, x: 22 }
3333
- { _id: 3, x: 33 }
34+
-
35+
description: "InsertOne fails after connection failure when retryWrites option is false"
36+
clientOptions:
37+
retryWrites: false
38+
failPoint:
39+
configureFailPoint: failCommand
40+
mode: { times: 1 }
41+
data:
42+
failCommands: ["insert"]
43+
closeConnection: true
44+
operation:
45+
name: "insertOne"
46+
arguments:
47+
document: { _id: 3, x: 33 }
48+
outcome:
49+
error: true
50+
result:
51+
# If retryWrites is false, the driver should not add the
52+
# RetryableWriteError label to the error.
53+
errorLabelsOmit: ["RetryableWriteError"]
54+
collection:
55+
data:
56+
- { _id: 1, x: 11 }
57+
- { _id: 2, x: 22 }
3458
-
3559
description: "InsertOne succeeds after NotMaster"
3660
failPoint:
@@ -39,7 +63,7 @@ tests:
3963
data:
4064
failCommands: ["insert"]
4165
errorCode: 10107
42-
errorLabels: ["RetryableWriteError"] # SPEC-1565
66+
errorLabels: ["RetryableWriteError"]
4367
closeConnection: false
4468
operation:
4569
name: "insertOne"
@@ -61,7 +85,7 @@ tests:
6185
data:
6286
failCommands: ["insert"]
6387
errorCode: 13436
64-
errorLabels: ["RetryableWriteError"] # SPEC-1565
88+
errorLabels: ["RetryableWriteError"]
6589
closeConnection: false
6690
operation:
6791
name: "insertOne"
@@ -83,7 +107,7 @@ tests:
83107
data:
84108
failCommands: ["insert"]
85109
errorCode: 13435
86-
errorLabels: ["RetryableWriteError"] # SPEC-1565
110+
errorLabels: ["RetryableWriteError"]
87111
closeConnection: false
88112
operation:
89113
name: "insertOne"
@@ -105,7 +129,7 @@ tests:
105129
data:
106130
failCommands: ["insert"]
107131
errorCode: 11602
108-
errorLabels: ["RetryableWriteError"] # SPEC-1565
132+
errorLabels: ["RetryableWriteError"]
109133
closeConnection: false
110134
operation:
111135
name: "insertOne"
@@ -127,7 +151,7 @@ tests:
127151
data:
128152
failCommands: ["insert"]
129153
errorCode: 11600
130-
errorLabels: ["RetryableWriteError"] # SPEC-1565
154+
errorLabels: ["RetryableWriteError"]
131155
closeConnection: false
132156
operation:
133157
name: "insertOne"
@@ -149,7 +173,7 @@ tests:
149173
data:
150174
failCommands: ["insert"]
151175
errorCode: 189
152-
errorLabels: ["RetryableWriteError"] # SPEC-1565
176+
errorLabels: ["RetryableWriteError"]
153177
closeConnection: false
154178
operation:
155179
name: "insertOne"
@@ -171,7 +195,7 @@ tests:
171195
data:
172196
failCommands: ["insert"]
173197
errorCode: 91
174-
errorLabels: ["RetryableWriteError"] # SPEC-1565
198+
errorLabels: ["RetryableWriteError"]
175199
closeConnection: false
176200
operation:
177201
name: "insertOne"
@@ -193,7 +217,7 @@ tests:
193217
data:
194218
failCommands: ["insert"]
195219
errorCode: 7
196-
errorLabels: ["RetryableWriteError"] # SPEC-1565
220+
errorLabels: ["RetryableWriteError"]
197221
closeConnection: false
198222
operation:
199223
name: "insertOne"
@@ -215,7 +239,7 @@ tests:
215239
data:
216240
failCommands: ["insert"]
217241
errorCode: 6
218-
errorLabels: ["RetryableWriteError"] # SPEC-1565
242+
errorLabels: ["RetryableWriteError"]
219243
closeConnection: false
220244
operation:
221245
name: "insertOne"
@@ -237,7 +261,7 @@ tests:
237261
data:
238262
failCommands: ["insert"]
239263
errorCode: 9001
240-
errorLabels: ["RetryableWriteError"] # SPEC-1565
264+
errorLabels: ["RetryableWriteError"]
241265
closeConnection: false
242266
operation:
243267
name: "insertOne"
@@ -259,7 +283,7 @@ tests:
259283
data:
260284
failCommands: ["insert"]
261285
errorCode: 89
262-
errorLabels: ["RetryableWriteError"] # SPEC-1565
286+
errorLabels: ["RetryableWriteError"]
263287
closeConnection: false
264288
operation:
265289
name: "insertOne"
@@ -281,7 +305,7 @@ tests:
281305
data:
282306
failCommands: ["insert"]
283307
errorCode: 262
284-
errorLabels: ["RetryableWriteError"] # SPEC-1565
308+
errorLabels: ["RetryableWriteError"]
285309
closeConnection: false
286310
operation:
287311
name: "insertOne"
@@ -326,7 +350,7 @@ tests:
326350
writeConcernError:
327351
code: 11600
328352
errmsg: Replication is being shut down
329-
errorLabels: ["RetryableWriteError"] # SPEC-1565
353+
errorLabels: ["RetryableWriteError"]
330354
operation:
331355
name: "insertOne"
332356
arguments:
@@ -349,7 +373,7 @@ tests:
349373
writeConcernError:
350374
code: 11602
351375
errmsg: Replication is being shut down
352-
errorLabels: ["RetryableWriteError"] # SPEC-1565
376+
errorLabels: ["RetryableWriteError"]
353377
operation:
354378
name: "insertOne"
355379
arguments:
@@ -372,7 +396,7 @@ tests:
372396
writeConcernError:
373397
code: 189
374398
errmsg: Replication is being shut down
375-
errorLabels: ["RetryableWriteError"] # SPEC-1565
399+
errorLabels: ["RetryableWriteError"]
376400
operation:
377401
name: "insertOne"
378402
arguments:
@@ -395,7 +419,7 @@ tests:
395419
writeConcernError:
396420
code: 91
397421
errmsg: Replication is being shut down
398-
errorLabels: ["RetryableWriteError"] # SPEC-1565
422+
errorLabels: ["RetryableWriteError"]
399423
operation:
400424
name: "insertOne"
401425
arguments:

data/retryable-writes/replaceOne-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["update"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "replaceOne"
2525
arguments:
@@ -44,7 +44,7 @@ tests:
4444
writeConcernError:
4545
code: 91
4646
errmsg: Replication is being shut down
47-
errorLabels: ["RetryableWriteError"] # SPEC-1565
47+
errorLabels: ["RetryableWriteError"]
4848
operation:
4949
name: "replaceOne"
5050
arguments:

data/retryable-writes/updateOne-serverErrors.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ tests:
1919
data:
2020
failCommands: ["update"]
2121
errorCode: 189
22-
errorLabels: ["RetryableWriteError"] # SPEC-1565
22+
errorLabels: ["RetryableWriteError"]
2323
operation:
2424
name: "updateOne"
2525
arguments:
@@ -44,7 +44,7 @@ tests:
4444
writeConcernError:
4545
code: 91
4646
errmsg: Replication is being shut down
47-
errorLabels: ["RetryableWriteError"] # SPEC-1565
47+
errorLabels: ["RetryableWriteError"]
4848
operation:
4949
name: "updateOne"
5050
arguments:

data/transactions/error-labels.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ tests:
500500
data:
501501
failCommands: ["commitTransaction"]
502502
errorCode: 11602 # InterruptedDueToReplStateChange
503-
errorLabels: ["RetryableWriteError"] # SPEC-1565
503+
errorLabels: ["RetryableWriteError"]
504504

505505
operations:
506506
- name: startTransaction

data/transactions/mongos-recovery-token.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ tests:
119119
writeConcernError:
120120
code: 91
121121
errmsg: Replication is being shut down
122-
errorLabels: ["RetryableWriteError"] # SPEC-1565
122+
errorLabels: ["RetryableWriteError"]
123123
# The client sees a retryable writeConcernError on the first
124124
# commitTransaction due to the fail point but it actually succeeds on the
125125
# server (SERVER-39346). The retry will succeed both on a new mongos and

0 commit comments

Comments
 (0)