File tree Expand file tree Collapse file tree 3 files changed +218
-0
lines changed Expand file tree Collapse file tree 3 files changed +218
-0
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ An error is considered retryable if it meets any of the following criteria:
54
54
=============================== ==============
55
55
**Error Name ** **Error Code **
56
56
=============================== ==============
57
+ ExceededTimeLimit 262
57
58
InterruptedAtShutdown 11600
58
59
InterruptedDueToReplStateChange 11602
59
60
NotWritablePrimary 10107
@@ -703,6 +704,8 @@ degraded performance can simply disable ``retryableReads``.
703
704
Changelog
704
705
=========
705
706
707
+ :2023 - 11 - 28 : Add ExceededTimeLimit to the list of error codes that should
708
+ be retried .
706
709
:2023 - 08 - 26 : Require that in a sharded cluster the server on which the
707
710
operation failed MUST be provided to the server selection
708
711
mechanism as a deprioritized server .
Original file line number Diff line number Diff line change
1
+ description : " ExceededTimeLimit is a retryable read"
2
+
3
+ schemaVersion : " 1.3"
4
+
5
+ runOnRequirements :
6
+ - minServerVersion : " 4.0"
7
+ topologies : [single, replicaset]
8
+ - minServerVersion : " 4.1.7"
9
+ topologies : [sharded, load-balanced]
10
+
11
+ createEntities :
12
+ - client :
13
+ id : &client0 client0
14
+ # Ensure the `configureFailpoint` and `find` commands are run on the same mongos
15
+ useMultipleMongoses : false
16
+ observeEvents : [ commandStartedEvent ]
17
+ - database :
18
+ id : &database0 database0
19
+ client : *client0
20
+ databaseName : &database0Name "retryable-reads-tests"
21
+ - collection :
22
+ id : &collection0 collection0
23
+ database : *database0
24
+ collectionName : &collection0Name "exceededtimelimit-test"
25
+
26
+ initialData :
27
+ - collectionName : *collection0Name
28
+ databaseName : *database0Name
29
+ documents :
30
+ - { _id: 1, x: 11 }
31
+ - { _id: 2, x: 22 }
32
+ - { _id: 3, x: 33 }
33
+
34
+ tests :
35
+ - description : " Find succeeds on second attempt after ExceededTimeLimit"
36
+ operations :
37
+ - name : failPoint
38
+ object : testRunner
39
+ arguments :
40
+ client : *client0
41
+ failPoint :
42
+ configureFailPoint : failCommand
43
+ mode : { times: 1 }
44
+ data :
45
+ failCommands : [ "find" ]
46
+ errorCode : 262 # ExceededTimeLimit
47
+ - name : find
48
+ arguments :
49
+ filter : { _id: { $gt: 1 } }
50
+ object : *collection0
51
+ expectResult :
52
+ - { _id: 2, x: 22 }
53
+ - { _id: 3, x: 33 }
54
+ expectEvents :
55
+ - client : *client0
56
+ events :
57
+ - commandStartedEvent :
58
+ command :
59
+ find : *collection0Name
60
+ filter : { _id: { $gt: 1 } }
61
+ commandName : find
62
+ databaseName : *database0Name
63
+ - commandStartedEvent :
64
+ command :
65
+ find : *collection0Name
66
+ filter : { _id: { $gt: 1 } }
67
+ commandName : find
68
+ databaseName : *database0Name
You can’t perform that action at this time.
0 commit comments