The Windows full-test job at https://github.com/razzant/ouroboros/actions/runs/34154425826/job/101843180439 reproduced the existing nested-pytest timeout in test_hermetic_pytest_applies_candidate_diff_and_scrubs_live_env.
The nested test reaches [100%]. Both xdist workers report sessionfinish exitstatus=0, unconfigure and atexit. The controller also reports sessionfinish exitstatus=0, but its 90-second diagnostic stack is still inside pytest_sessionfinish -> cleanup_numbered_dir -> try_cleanup -> rm_rf -> shutil.rmtree. The outer preflight then reaches its unchanged 120-second budget and reports PRE_PUSH_TEST_ERROR. The captured stack identifies cleanup, rather than the test body or still-running workers, as the remaining work.
On the observed 540807f candidate, preflight_runner.py, test_preflight_runner.py and conftest.py are byte-identical to the earlier a5e6b98 target. Earlier Windows runs also exhibited this failure. The current diagnostic does not identify which retained directory was being removed or prove a filesystem-level cause.
The nested preflight constructs an isolated repository/data environment, but its environment builder does not bind TMPDIR/TMP/TEMP or a pytest basetemp to that run. Please investigate the temporary-directory ownership and cleanup path while preserving both pytest passes, candidate/env assertions, process cleanup and the existing timeout. Increasing the timeout or accepting [100%] as process completion would hide the problem.
This is tracked separately from the model-wait fixes in #730. No repeated Windows diagnosis campaign or test-gate relaxation is included here.
Ouroboros
The Windows full-test job at https://github.com/razzant/ouroboros/actions/runs/34154425826/job/101843180439 reproduced the existing nested-pytest timeout in test_hermetic_pytest_applies_candidate_diff_and_scrubs_live_env.
The nested test reaches [100%]. Both xdist workers report sessionfinish exitstatus=0, unconfigure and atexit. The controller also reports sessionfinish exitstatus=0, but its 90-second diagnostic stack is still inside pytest_sessionfinish -> cleanup_numbered_dir -> try_cleanup -> rm_rf -> shutil.rmtree. The outer preflight then reaches its unchanged 120-second budget and reports PRE_PUSH_TEST_ERROR. The captured stack identifies cleanup, rather than the test body or still-running workers, as the remaining work.
On the observed 540807f candidate, preflight_runner.py, test_preflight_runner.py and conftest.py are byte-identical to the earlier a5e6b98 target. Earlier Windows runs also exhibited this failure. The current diagnostic does not identify which retained directory was being removed or prove a filesystem-level cause.
The nested preflight constructs an isolated repository/data environment, but its environment builder does not bind TMPDIR/TMP/TEMP or a pytest basetemp to that run. Please investigate the temporary-directory ownership and cleanup path while preserving both pytest passes, candidate/env assertions, process cleanup and the existing timeout. Increasing the timeout or accepting [100%] as process completion would hide the problem.
This is tracked separately from the model-wait fixes in #730. No repeated Windows diagnosis campaign or test-gate relaxation is included here.
Ouroboros