From faa5613ded9336bcce00135ea3acfa372e7e7125 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Thu, 16 Apr 2026 11:02:26 -0400 Subject: [PATCH 1/3] PYTHON-5798 - Overload retargeting prose tests do not ensure that secondaries are discovered --- test/asynchronous/test_retryable_reads.py | 13 +++++++++++-- test/test_retryable_reads.py | 13 +++++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/test/asynchronous/test_retryable_reads.py b/test/asynchronous/test_retryable_reads.py index c7369db90f..cc70b62dc5 100644 --- a/test/asynchronous/test_retryable_reads.py +++ b/test/asynchronous/test_retryable_reads.py @@ -19,10 +19,10 @@ import pprint import sys import threading -from test.asynchronous.utils import async_set_fail_point +from test.asynchronous.utils import async_ensure_all_connected, async_set_fail_point from unittest import mock -from pymongo import MongoClient +from pymongo import MongoClient, ReadPreference from pymongo.common import MAX_ADAPTIVE_RETRIES from pymongo.errors import OperationFailure, PyMongoError @@ -295,6 +295,9 @@ async def test_03_01_retryable_reads_caused_by_overload_errors_are_retried_on_a_ enableOverloadRetargeting=True, ) + # Ensure the client has discovered all nodes. + await async_ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError and SystemOverloadedError error labels. command_args = { "configureFailPoint": "failCommand", @@ -334,6 +337,9 @@ async def test_03_02_retryable_reads_caused_by_non_overload_errors_are_retried_o event_listeners=[listener], retryReads=True, readPreference="primaryPreferred" ) + # Ensure the client has discovered all nodes. + await async_ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError error label. command_args = { "configureFailPoint": "failCommand", @@ -375,6 +381,9 @@ async def test_03_03_retryable_reads_caused_by_overload_errors_are_retried_on_th readPreference="primaryPreferred", ) + # Ensure the client has discovered all nodes. + await async_ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError and SystemOverloadedError error labels. command_args = { "configureFailPoint": "failCommand", diff --git a/test/test_retryable_reads.py b/test/test_retryable_reads.py index 7513194793..67b2c3482d 100644 --- a/test/test_retryable_reads.py +++ b/test/test_retryable_reads.py @@ -19,10 +19,10 @@ import pprint import sys import threading -from test.utils import set_fail_point +from test.utils import ensure_all_connected, set_fail_point from unittest import mock -from pymongo import MongoClient +from pymongo import MongoClient, ReadPreference from pymongo.common import MAX_ADAPTIVE_RETRIES from pymongo.errors import OperationFailure, PyMongoError @@ -293,6 +293,9 @@ def test_03_01_retryable_reads_caused_by_overload_errors_are_retried_on_a_differ enableOverloadRetargeting=True, ) + # Ensure the client has discovered all nodes. + ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError and SystemOverloadedError error labels. command_args = { "configureFailPoint": "failCommand", @@ -332,6 +335,9 @@ def test_03_02_retryable_reads_caused_by_non_overload_errors_are_retried_on_the_ event_listeners=[listener], retryReads=True, readPreference="primaryPreferred" ) + # Ensure the client has discovered all nodes. + ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError error label. command_args = { "configureFailPoint": "failCommand", @@ -373,6 +379,9 @@ def test_03_03_retryable_reads_caused_by_overload_errors_are_retried_on_the_same readPreference="primaryPreferred", ) + # Ensure the client has discovered all nodes. + ensure_all_connected(client) + # 2. Configure a fail point with the RetryableError and SystemOverloadedError error labels. command_args = { "configureFailPoint": "failCommand", From a3acb0c0265bed33fdb4eda14f4cb036c686cb74 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Thu, 16 Apr 2026 11:10:43 -0400 Subject: [PATCH 2/3] Update test/test_retryable_reads.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- test/test_retryable_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_retryable_reads.py b/test/test_retryable_reads.py index 67b2c3482d..2da87f8b26 100644 --- a/test/test_retryable_reads.py +++ b/test/test_retryable_reads.py @@ -22,7 +22,7 @@ from test.utils import ensure_all_connected, set_fail_point from unittest import mock -from pymongo import MongoClient, ReadPreference +from pymongo import MongoClient from pymongo.common import MAX_ADAPTIVE_RETRIES from pymongo.errors import OperationFailure, PyMongoError From eb8fabd5d6d31f057b9b82745cd49bc75e9f92eb Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Thu, 16 Apr 2026 11:10:50 -0400 Subject: [PATCH 3/3] Update test/asynchronous/test_retryable_reads.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- test/asynchronous/test_retryable_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/asynchronous/test_retryable_reads.py b/test/asynchronous/test_retryable_reads.py index cc70b62dc5..361db4ca92 100644 --- a/test/asynchronous/test_retryable_reads.py +++ b/test/asynchronous/test_retryable_reads.py @@ -22,7 +22,7 @@ from test.asynchronous.utils import async_ensure_all_connected, async_set_fail_point from unittest import mock -from pymongo import MongoClient, ReadPreference +from pymongo import MongoClient from pymongo.common import MAX_ADAPTIVE_RETRIES from pymongo.errors import OperationFailure, PyMongoError