From 81d89d1d90af56c208bc0ce0b304f4cc5f4c3119 Mon Sep 17 00:00:00 2001 From: "Jeong, YunWon" <69878+youknowone@users.noreply.github.com> Date: Wed, 14 Jan 2026 16:59:10 +0900 Subject: [PATCH] Fix flaky multiprocessing tests (#6725) --- .github/workflows/ci.yaml | 2 -- Lib/test/_test_multiprocessing.py | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index cc7f745af..778890a9f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -108,14 +108,12 @@ env: ENV_POLLUTING_TESTS_COMMON: >- ENV_POLLUTING_TESTS_LINUX: >- test.test_multiprocessing_fork.test_processes - test.test_multiprocessing_fork.test_threads test.test_multiprocessing_forkserver.test_processes test.test_multiprocessing_forkserver.test_threads test.test_multiprocessing_spawn.test_processes test.test_multiprocessing_spawn.test_threads ENV_POLLUTING_TESTS_MACOS: >- test.test_multiprocessing_forkserver.test_processes - test.test_multiprocessing_forkserver.test_threads test.test_multiprocessing_spawn.test_processes test.test_multiprocessing_spawn.test_threads ENV_POLLUTING_TESTS_WINDOWS: >- diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 2fc206f7d..80b663d32 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -6597,7 +6597,8 @@ class BaseMixin(object): support.print_warning(f'Dangling processes: {processes}') processes = None - threads = set(threading._dangling) - set(cls.dangling[1]) + # TODO: RUSTPYTHON: Filter out stopped threads since gc.collect() is a no-op + threads = {t for t in threading._dangling if t.is_alive()} - {t for t in cls.dangling[1] if t.is_alive()} if threads: test.support.environment_altered = True support.print_warning(f'Dangling threads: {threads}') @@ -6794,7 +6795,8 @@ def install_tests_in_module_dict(remote_globs, start_method, support.print_warning(f'Dangling processes: {processes}') processes = None - threads = set(threading._dangling) - set(dangling[1]) + # TODO: RUSTPYTHON: Filter out stopped threads since gc.collect() is a no-op + threads = {t for t in threading._dangling if t.is_alive()} - {t for t in dangling[1] if t.is_alive()} if threads: need_sleep = True test.support.environment_altered = True