-
Notifications
You must be signed in to change notification settings - Fork 1.8k
/
pool-checkout-custom-maxConnecting-is-enforced.yml
50 lines (50 loc) · 1.29 KB
/
pool-checkout-custom-maxConnecting-is-enforced.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
version: 1
style: integration
description: custom maxConnecting is enforced
runOn:
-
minServerVersion: "4.4.0"
failPoint:
configureFailPoint: failCommand
mode: "alwaysOn"
data:
failCommands: ["isMaster","hello"]
closeConnection: false
blockConnection: true
blockTimeMS: 500
poolOptions:
maxConnecting: 1
# gives opportunity for the checkout in thread2 to establish a new connection, which it must not do until thread1 establishes one
maxPoolSize: 2
waitQueueTimeoutMS: 5000
operations:
- name: ready
# thread1 exists to consume the single permit to open a connection,
# so that thread2 would be blocked acquiring a permit, which results in ordering its ConnectionCreated event after
# the ConnectionReady event from thread1.
- name: start
target: thread1
- name: start
target: thread2
- name: checkOut
thread: thread1
- name: waitForEvent
event: ConnectionCreated
count: 1
- name: checkOut
thread: thread2
- name: waitForEvent
event: ConnectionReady
count: 2
events:
- type: ConnectionCreated
- type: ConnectionReady
- type: ConnectionCreated
- type: ConnectionReady
ignore:
- ConnectionCheckOutStarted
- ConnectionCheckedIn
- ConnectionCheckedOut
- ConnectionClosed
- ConnectionPoolCreated
- ConnectionPoolReady