Skip to content

Commit d9a6bfb

Browse files
committed
Require retryable writes network error tests to run on mongos 4.2+
JAVA-3253
1 parent 5ff1ed4 commit d9a6bfb

20 files changed

+691
-22
lines changed

driver-core/src/test/resources/retryable-writes/bulkWrite-serverErrors.json

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "4.0",
5+
"topology": [
6+
"replicaset"
7+
]
8+
},
9+
{
10+
"minServerVersion": "4.1.7",
11+
"topology": [
12+
"sharded"
13+
]
14+
}
15+
],
216
"data": [
317
{
418
"_id": 1,
@@ -9,7 +23,6 @@
923
"x": 22
1024
}
1125
],
12-
"minServerVersion": "3.99",
1326
"tests": [
1427
{
1528
"description": "BulkWrite succeeds after PrimarySteppedDown",
@@ -173,6 +186,81 @@
173186
]
174187
}
175188
}
189+
},
190+
{
191+
"description": "BulkWrite fails with a RetryableWriteError label after two connection failures",
192+
"failPoint": {
193+
"configureFailPoint": "failCommand",
194+
"mode": {
195+
"times": 2
196+
},
197+
"data": {
198+
"failCommands": [
199+
"update"
200+
],
201+
"closeConnection": true
202+
}
203+
},
204+
"operation": {
205+
"name": "bulkWrite",
206+
"arguments": {
207+
"requests": [
208+
{
209+
"name": "deleteOne",
210+
"arguments": {
211+
"filter": {
212+
"_id": 1
213+
}
214+
}
215+
},
216+
{
217+
"name": "insertOne",
218+
"arguments": {
219+
"document": {
220+
"_id": 3,
221+
"x": 33
222+
}
223+
}
224+
},
225+
{
226+
"name": "updateOne",
227+
"arguments": {
228+
"filter": {
229+
"_id": 2
230+
},
231+
"update": {
232+
"$inc": {
233+
"x": 1
234+
}
235+
}
236+
}
237+
}
238+
],
239+
"options": {
240+
"ordered": true
241+
}
242+
}
243+
},
244+
"outcome": {
245+
"error": true,
246+
"result": {
247+
"errorLabelsContain": [
248+
"RetryableWriteError"
249+
]
250+
},
251+
"collection": {
252+
"data": [
253+
{
254+
"_id": 2,
255+
"x": 22
256+
},
257+
{
258+
"_id": 3,
259+
"x": 33
260+
}
261+
]
262+
}
263+
}
176264
}
177265
]
178266
}

driver-core/src/test/resources/retryable-writes/bulkWrite.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "3.6",
5+
"topology": [
6+
"replicaset"
7+
]
8+
}
9+
],
210
"data": [
311
{
412
"_id": 1,
513
"x": 11
614
}
715
],
8-
"minServerVersion": "3.6",
916
"tests": [
1017
{
1118
"description": "First command is retried",

driver-core/src/test/resources/retryable-writes/deleteMany.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "3.6",
5+
"topology": [
6+
"replicaset",
7+
"sharded"
8+
]
9+
}
10+
],
211
"data": [
312
{
413
"_id": 1,
@@ -9,10 +18,10 @@
918
"x": 22
1019
}
1120
],
12-
"minServerVersion": "3.6",
1321
"tests": [
1422
{
1523
"description": "DeleteMany ignores retryWrites",
24+
"useMultipleMongoses": true,
1625
"operation": {
1726
"name": "deleteMany",
1827
"arguments": {

driver-core/src/test/resources/retryable-writes/deleteOne-serverErrors.json

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "4.0",
5+
"topology": [
6+
"replicaset"
7+
]
8+
},
9+
{
10+
"minServerVersion": "4.1.7",
11+
"topology": [
12+
"sharded"
13+
]
14+
}
15+
],
216
"data": [
317
{
418
"_id": 1,
@@ -9,7 +23,6 @@
923
"x": 22
1024
}
1125
],
12-
"minServerVersion": "3.99",
1326
"tests": [
1427
{
1528
"description": "DeleteOne succeeds after PrimarySteppedDown",
@@ -85,6 +98,49 @@
8598
]
8699
}
87100
}
101+
},
102+
{
103+
"description": "DeleteOne fails with RetryableWriteError label after two connection failures",
104+
"failPoint": {
105+
"configureFailPoint": "failCommand",
106+
"mode": {
107+
"times": 2
108+
},
109+
"data": {
110+
"failCommands": [
111+
"delete"
112+
],
113+
"closeConnection": true
114+
}
115+
},
116+
"operation": {
117+
"name": "deleteOne",
118+
"arguments": {
119+
"filter": {
120+
"_id": 1
121+
}
122+
}
123+
},
124+
"outcome": {
125+
"error": true,
126+
"result": {
127+
"errorLabelsContain": [
128+
"RetryableWriteError"
129+
]
130+
},
131+
"collection": {
132+
"data": [
133+
{
134+
"_id": 1,
135+
"x": 11
136+
},
137+
{
138+
"_id": 2,
139+
"x": 22
140+
}
141+
]
142+
}
143+
}
88144
}
89145
]
90146
}

driver-core/src/test/resources/retryable-writes/deleteOne.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "3.6",
5+
"topology": [
6+
"replicaset"
7+
]
8+
}
9+
],
210
"data": [
311
{
412
"_id": 1,
@@ -9,7 +17,6 @@
917
"x": 22
1018
}
1119
],
12-
"minServerVersion": "3.6",
1320
"tests": [
1421
{
1522
"description": "DeleteOne is committed on first attempt",

driver-core/src/test/resources/retryable-writes/findOneAndDelete-serverErrors.json

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "4.0",
5+
"topology": [
6+
"replicaset"
7+
]
8+
},
9+
{
10+
"minServerVersion": "4.1.7",
11+
"topology": [
12+
"sharded"
13+
]
14+
}
15+
],
216
"data": [
317
{
418
"_id": 1,
@@ -9,7 +23,6 @@
923
"x": 22
1024
}
1125
],
12-
"minServerVersion": "3.99",
1326
"tests": [
1427
{
1528
"description": "FindOneAndDelete succeeds after PrimarySteppedDown",
@@ -97,6 +110,54 @@
97110
]
98111
}
99112
}
113+
},
114+
{
115+
"description": "FindOneAndDelete fails with a RetryableWriteError label after two connection failures",
116+
"failPoint": {
117+
"configureFailPoint": "failCommand",
118+
"mode": {
119+
"times": 2
120+
},
121+
"data": {
122+
"failCommands": [
123+
"findAndModify"
124+
],
125+
"closeConnection": true
126+
}
127+
},
128+
"operation": {
129+
"name": "findOneAndDelete",
130+
"arguments": {
131+
"filter": {
132+
"x": {
133+
"$gte": 11
134+
}
135+
},
136+
"sort": {
137+
"x": 1
138+
}
139+
}
140+
},
141+
"outcome": {
142+
"error": true,
143+
"result": {
144+
"errorLabelsContain": [
145+
"RetryableWriteError"
146+
]
147+
},
148+
"collection": {
149+
"data": [
150+
{
151+
"_id": 1,
152+
"x": 11
153+
},
154+
{
155+
"_id": 2,
156+
"x": 22
157+
}
158+
]
159+
}
160+
}
100161
}
101162
]
102163
}

driver-core/src/test/resources/retryable-writes/findOneAndDelete.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
{
2+
"runOn": [
3+
{
4+
"minServerVersion": "3.6",
5+
"topology": [
6+
"replicaset"
7+
]
8+
}
9+
],
210
"data": [
311
{
412
"_id": 1,
@@ -9,7 +17,6 @@
917
"x": 22
1018
}
1119
],
12-
"minServerVersion": "3.6",
1320
"tests": [
1421
{
1522
"description": "FindOneAndDelete is committed on first attempt",

0 commit comments

Comments
 (0)