File tree Expand file tree Collapse file tree 2 files changed +281
-0
lines changed
source/client-side-operations-timeout/tests Expand file tree Collapse file tree 2 files changed +281
-0
lines changed Original file line number Diff line number Diff line change 1+ description : " WaitQueueTimeoutError does not clear the pool"
2+
3+ schemaVersion : " 1.9"
4+
5+ runOnRequirements :
6+ - minServerVersion : " 4.4"
7+ topologies : ["single", "replicaset", "sharded"]
8+
9+ createEntities :
10+ - client :
11+ id : &failPointClient failPointClient
12+ useMultipleMongoses : false
13+ - client :
14+ id : &client client
15+ uriOptions :
16+ maxPoolSize : 1
17+ appname : &appname waitQueueTimeoutErrorTest
18+ useMultipleMongoses : false
19+ observeEvents :
20+ - commandStartedEvent
21+ - poolClearedEvent
22+ - database :
23+ id : &database database
24+ client : *client
25+ databaseName : &databaseName test
26+
27+ tests :
28+ - description : " WaitQueueTimeoutError does not clear the pool"
29+ operations :
30+ - name : failPoint
31+ object : testRunner
32+ arguments :
33+ client : *failPointClient
34+ failPoint :
35+ configureFailPoint : failCommand
36+ mode : { times: 1 }
37+ data :
38+ failCommands : ["ping"]
39+ blockConnection : true
40+ blockTimeMS : 500
41+ appName : *appname
42+ # Start thread.
43+ - name : createEntities
44+ object : testRunner
45+ arguments :
46+ entities :
47+ - thread :
48+ id : &thread0 thread0
49+ - name : runOnThread
50+ object : testRunner
51+ arguments :
52+ thread : *thread0
53+ operation :
54+ name : runCommand
55+ object : *database
56+ arguments :
57+ command : { ping: 1 }
58+ commandName : ping
59+ # Wait for the thread to checkout the only connection (maxPoolSize=1).
60+ - name : waitForEvent
61+ object : testRunner
62+ arguments :
63+ client : *client
64+ event :
65+ commandStartedEvent :
66+ commandName : ping
67+ count : 1
68+ # Run another command with a short timeout to make it likely to get a WaitQueueTimeoutError.
69+ - name : runCommand
70+ object : *database
71+ arguments :
72+ timeoutMS : 100
73+ command : { hello: 1 }
74+ commandName : hello
75+ expectError :
76+ isTimeoutError : true
77+ - name : waitForThread
78+ object : testRunner
79+ arguments :
80+ thread : *thread0
81+ # Run another command with no timeout to ensure the pool is not cleared.
82+ - name : runCommand
83+ object : *database
84+ arguments :
85+ command : { hello: 1 }
86+ commandName : hello
87+
88+ expectEvents :
89+ - client : *client
90+ eventType : command
91+ events :
92+ - commandStartedEvent :
93+ commandName : ping
94+ databaseName : *databaseName
95+ command :
96+ ping : 1
97+ - commandStartedEvent :
98+ commandName : hello
99+ databaseName : *databaseName
100+ command :
101+ hello : 1
102+ # No poolClearedEvent.
103+ - client : *client
104+ eventType : cmap
105+ events : []
You can’t perform that action at this time.
0 commit comments