https://github.com/python/cpython/commit/ad273f76b2526b0d3b7f28aff26b48270105f4c0 commit: ad273f76b2526b0d3b7f28aff26b48270105f4c0 branch: 3.14 author: Miss Islington (bot) <[email protected]> committer: vstinner <[email protected]> date: 2026-03-24T00:13:09Z summary:
[3.14] gh-146202: Create tmp_dir in regrtest worker (GH-146347) (#146349) gh-146202: Create tmp_dir in regrtest worker (GH-146347) Create tmp_dir in libregrtest.worker since the directory can be different than the --tempdir directory. (cherry picked from commit bcff99cb3f3b887a08c4f0ace1279ced38dd9e62) Co-authored-by: Victor Stinner <[email protected]> files: A Misc/NEWS.d/next/Tests/2026-03-24-00-15-58.gh-issue-146202.LgH6Bj.rst M Lib/test/libregrtest/utils.py M Lib/test/libregrtest/worker.py diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index 58164d8a7983d5..15caba75acfa3d 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -433,12 +433,6 @@ def get_temp_dir(tmp_dir: StrPath | None = None) -> StrPath: f"unexpectedly returned {tmp_dir!r} on WASI" ) tmp_dir = os.path.join(tmp_dir, 'build') - - # When get_temp_dir() is called in a worker process, - # get_temp_dir() path is different than in the parent process - # which is not a WASI process. So the parent does not create - # the same "tmp_dir" than the test worker process. - os.makedirs(tmp_dir, exist_ok=True) else: tmp_dir = tempfile.gettempdir() diff --git a/Lib/test/libregrtest/worker.py b/Lib/test/libregrtest/worker.py index 1ad67e1cebf288..4e69ab9d8fad05 100644 --- a/Lib/test/libregrtest/worker.py +++ b/Lib/test/libregrtest/worker.py @@ -127,6 +127,9 @@ def main() -> NoReturn: worker_json = sys.argv[1] tmp_dir = get_temp_dir() + # get_temp_dir() can be different in the worker and the parent process. + # For example, if --tempdir option is used. + os.makedirs(tmp_dir, exist_ok=True) work_dir = get_work_dir(tmp_dir, worker=True) with exit_timeout(): diff --git a/Misc/NEWS.d/next/Tests/2026-03-24-00-15-58.gh-issue-146202.LgH6Bj.rst b/Misc/NEWS.d/next/Tests/2026-03-24-00-15-58.gh-issue-146202.LgH6Bj.rst new file mode 100644 index 00000000000000..ef869fe2617256 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2026-03-24-00-15-58.gh-issue-146202.LgH6Bj.rst @@ -0,0 +1,3 @@ +Fix a race condition in regrtest: make sure that the temporary directory is +created in the worker process. Previously, temp_cwd() could fail on Windows if +the "build" directory was not created. Patch by Victor Stinner. _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]
