From 7d83839b6526b2da631531275a47766990448e31 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 5 Sep 2025 16:44:33 -0400 Subject: [PATCH 1/4] isolate test and repeat 100x --- .evergreen/scripts/run-tests.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.evergreen/scripts/run-tests.sh b/.evergreen/scripts/run-tests.sh index a52e8c89ee..fa5fa328f6 100755 --- a/.evergreen/scripts/run-tests.sh +++ b/.evergreen/scripts/run-tests.sh @@ -136,6 +136,8 @@ declare -a test_args=( "test-results.json" "--skip-tests" ".evergreen/etc/skip-tests.txt" + "--match" + "/Client/exhaust_cursor/pool" ) # TODO (CDRIVER-4045): consolidate DNS tests into regular test tasks. @@ -282,7 +284,9 @@ cygwin) openssl_lib_prefix="${openssl_install_dir}/lib:${openssl_lib_prefix:-}" fi - LD_LIBRARY_PATH="${openssl_lib_prefix}" LD_PRELOAD="${ld_preload:-}" ./cmake-build/src/libmongoc/test-libmongoc --no-fork "${test_args[@]}" + for i in {1..10}; do + LD_LIBRARY_PATH="${openssl_lib_prefix}" LD_PRELOAD="${ld_preload:-}" ./cmake-build/src/libmongoc/test-libmongoc --no-fork "${test_args[@]}" + done ;; esac From ebda518a8cbb92b3f6a348296f8dbc16d2683d2b Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 5 Sep 2025 16:59:54 -0400 Subject: [PATCH 2/4] await monitoring connections --- src/libmongoc/tests/test-mongoc-exhaust.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libmongoc/tests/test-mongoc-exhaust.c b/src/libmongoc/tests/test-mongoc-exhaust.c index f34dbd20da..0df2b64a83 100644 --- a/src/libmongoc/tests/test-mongoc-exhaust.c +++ b/src/libmongoc/tests/test-mongoc-exhaust.c @@ -115,6 +115,9 @@ test_exhaust_cursor(bool pooled) pool = test_framework_new_default_client_pool(); stream_tracker_track_pool(st, pool); client = mongoc_client_pool_pop(pool); + // Server 4.4 added support for streaming monitoring and has 2 monitoring connections. + int monitor_count = test_framework_get_server_version() >= test_framework_str_to_version("4.4") ? 2 : 1; + stream_tracker_assert_eventual_active_count(st, "localhost:27017", monitor_count); } else { client = test_framework_new_default_client(); stream_tracker_track_client(st, client); From 392c1510c2d59541ee65f42f75facd6d67af2979 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Fri, 5 Sep 2025 17:02:33 -0400 Subject: [PATCH 3/4] Revert "isolate test and repeat 100x" This reverts commit 7d83839b6526b2da631531275a47766990448e31. --- .evergreen/scripts/run-tests.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.evergreen/scripts/run-tests.sh b/.evergreen/scripts/run-tests.sh index fa5fa328f6..a52e8c89ee 100755 --- a/.evergreen/scripts/run-tests.sh +++ b/.evergreen/scripts/run-tests.sh @@ -136,8 +136,6 @@ declare -a test_args=( "test-results.json" "--skip-tests" ".evergreen/etc/skip-tests.txt" - "--match" - "/Client/exhaust_cursor/pool" ) # TODO (CDRIVER-4045): consolidate DNS tests into regular test tasks. @@ -284,9 +282,7 @@ cygwin) openssl_lib_prefix="${openssl_install_dir}/lib:${openssl_lib_prefix:-}" fi - for i in {1..10}; do - LD_LIBRARY_PATH="${openssl_lib_prefix}" LD_PRELOAD="${ld_preload:-}" ./cmake-build/src/libmongoc/test-libmongoc --no-fork "${test_args[@]}" - done + LD_LIBRARY_PATH="${openssl_lib_prefix}" LD_PRELOAD="${ld_preload:-}" ./cmake-build/src/libmongoc/test-libmongoc --no-fork "${test_args[@]}" ;; esac From 004a5add1eea6c4c66b66e4c639384349a7df5e6 Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Sat, 6 Sep 2025 07:51:33 -0400 Subject: [PATCH 4/4] check monitor count for all servers --- src/libmongoc/tests/test-mongoc-exhaust.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/libmongoc/tests/test-mongoc-exhaust.c b/src/libmongoc/tests/test-mongoc-exhaust.c index 0df2b64a83..ffe6e5ee3c 100644 --- a/src/libmongoc/tests/test-mongoc-exhaust.c +++ b/src/libmongoc/tests/test-mongoc-exhaust.c @@ -115,9 +115,17 @@ test_exhaust_cursor(bool pooled) pool = test_framework_new_default_client_pool(); stream_tracker_track_pool(st, pool); client = mongoc_client_pool_pop(pool); + + // Wait for all background monitoring connections to be established. + mongoc_uri_t *uri = test_framework_get_uri(); // Server 4.4 added support for streaming monitoring and has 2 monitoring connections. int monitor_count = test_framework_get_server_version() >= test_framework_str_to_version("4.4") ? 2 : 1; - stream_tracker_assert_eventual_active_count(st, "localhost:27017", monitor_count); + const mongoc_host_list_t *hosts = mongoc_uri_get_hosts(uri); + while (hosts) { + stream_tracker_assert_eventual_active_count(st, hosts->host_and_port, monitor_count); + hosts = hosts->next; + } + mongoc_uri_destroy(uri); } else { client = test_framework_new_default_client(); stream_tracker_track_client(st, client);