bson/testdata/connection-monitoring-and-pooling/pool-checkout-maxConnecting-timeout.yml
2025-03-17 20:58:26 +01:00

70 lines
1.9 KiB
YAML

version: 1
style: integration
description: waiting on maxConnecting is limited by WaitQueueTimeoutMS
runOn:
-
# required for blockConnection in fail point
minServerVersion: "4.4.0"
failPoint:
configureFailPoint: failCommand
# high amount to ensure not interfered with by monitor checks.
mode: { times: 50 }
data:
failCommands: ["isMaster","hello"]
closeConnection: false
blockConnection: true
blockTimeMS: 750
poolOptions:
maxPoolSize: 10
# Drivers that limit connection establishment by waitQueueTimeoutMS may skip
# this test. While waitQueueTimeoutMS is technically not supposed to limit establishment time,
# it will soon be deprecated, so it is easier for those drivers to just skip this test.
waitQueueTimeoutMS: 50
operations:
- name: ready
# start creating two connections simultaneously.
- name: start
target: thread1
- name: checkOut
thread: thread1
- name: start
target: thread2
- name: checkOut
thread: thread2
# wait for other two threads to start establishing
- name: waitForEvent
event: ConnectionCreated
count: 2
# start a third thread that will be blocked waiting for
# one of the other two to finish
- name: start
target: thread3
- name: checkOut
thread: thread3
- name: waitForEvent
event: ConnectionCheckOutFailed
count: 1
# rejoin thread3, should experience error
- name: waitForThread
target: thread3
error:
type: WaitQueueTimeoutError
message: Timed out while checking out a connection from connection pool
events:
- type: ConnectionCheckOutStarted
address: 42
- type: ConnectionCheckOutStarted
address: 42
- type: ConnectionCheckOutStarted
address: 42
- type: ConnectionCheckOutFailed
reason: timeout
address: 42
ignore:
- ConnectionCreated
- ConnectionCheckedIn
- ConnectionCheckedOut
- ConnectionClosed
- ConnectionPoolCreated
- ConnectionPoolReady