Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 27 additions & 12 deletions test/asynchronous/test_discovery_and_monitoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -467,26 +467,41 @@ async def test_connection_pool_is_not_cleared(self):
# Create a client that listens to CMAP events, with maxConnecting=100.
client = await self.async_rs_or_single_client(maxConnecting=100, event_listeners=[listener])

# Enable the ingress rate limiter.
await client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=True
)
await client.admin.command("setParameter", 1, ingressConnectionEstablishmentRatePerSec=20)
await client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentBurstCapacitySecs=1
)
await client.admin.command("setParameter", 1, ingressConnectionEstablishmentMaxQueueDepth=1)
# setParameter needs to be set on each mongos in a sharded cluster
if async_client_context.mongoses:
admin_clients = [
await self.async_single_client("{}:{}".format(*address))
for address in async_client_context.mongoses
]
else:
admin_clients = [client]

# Disable the ingress rate limiter on teardown.
# Sleep for 1 second before disabling to avoid the rate limiter.
async def teardown():
await asyncio.sleep(1)
await client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=False
)
for admin_client in admin_clients:
await admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=False
)

self.addAsyncCleanup(teardown)

# Enable the ingress rate limiter.
for admin_client in admin_clients:
await admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=True
)
Comment thread
NoahStapp marked this conversation as resolved.
Resolved
await admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRatePerSec=20
)
await admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentBurstCapacitySecs=1
)
await admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentMaxQueueDepth=1
)

# Make sure the collection has at least one document.
await client.test.test.delete_many({})
await client.test.test.insert_one({})
Expand Down
36 changes: 26 additions & 10 deletions test/test_discovery_and_monitoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -465,24 +465,40 @@ def test_connection_pool_is_not_cleared(self):
# Create a client that listens to CMAP events, with maxConnecting=100.
client = self.rs_or_single_client(maxConnecting=100, event_listeners=[listener])

# Enable the ingress rate limiter.
client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=True
)
client.admin.command("setParameter", 1, ingressConnectionEstablishmentRatePerSec=20)
client.admin.command("setParameter", 1, ingressConnectionEstablishmentBurstCapacitySecs=1)
client.admin.command("setParameter", 1, ingressConnectionEstablishmentMaxQueueDepth=1)
# setParameter needs to be set on each mongos in a sharded cluster
if client_context.mongoses:
admin_clients = [
self.single_client("{}:{}".format(*address)) for address in client_context.mongoses
]
else:
admin_clients = [client]

# Disable the ingress rate limiter on teardown.
# Sleep for 1 second before disabling to avoid the rate limiter.
def teardown():
time.sleep(1)
client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=False
)
for admin_client in admin_clients:
admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=False
)

self.addCleanup(teardown)

# Enable the ingress rate limiter.
for admin_client in admin_clients:
admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRateLimiterEnabled=True
)
Comment thread
NoahStapp marked this conversation as resolved.
Resolved
admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentRatePerSec=20
)
admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentBurstCapacitySecs=1
)
admin_client.admin.command(
"setParameter", 1, ingressConnectionEstablishmentMaxQueueDepth=1
)

# Make sure the collection has at least one document.
client.test.test.delete_many({})
client.test.test.insert_one({})
Expand Down
Loading