Bound Included Files recovery cleanup - #829
Conversation
|
Exact-head Windows evidence is not sufficient to merge yet. Run 30832195303 executed all 614 tests successfully, including both new regressions and the 10,000-entry case, but the job was still marked CANCELLED at its 20-minute cap during normal teardown. The test step took 1162.026 seconds; the 10,000-entry test occupied approximately 10m46s from the preceding test timestamp. This patch removes the measured absent-subtree descendant probes, but the separate present-tree repeated-parent scaling tracked by #828 still dominates the same 10,000-entry scenario. Keeping this PR draft and unmerged. I will land #828 independently first, then rebase this PR and require a fresh exact-head Windows run with substantial margin. |
2db0c86 to
4b6716a
Compare
|
Superseding my 2026-08-03 status comment: #828 is no longer a prerequisite for this PR. #831 has since merged and shipped as v0.7.53. It preserves the unchanged 20-minute limit while separating the native Windows contract into:
#829 is now rebased onto that mainline at The previous canceled combined run remains historical evidence of the original bottleneck, but it no longer defines the dependency order. This PR stays draft until fresh checks at the exact rebased head show both Windows jobs green with substantial margin and every other required check green. No exact-head CI success is claimed yet. |
|
Exact-head acceptance is complete for All 20 expected checks resolved as 17 successes plus the 3 normal PR-only release skips, with no failure or cancellation. Native Windows evidence:
Linux passed 2,428 tests with 81.38% coverage and its native bind-mount gate. Exact Godot |
Closes #826
What changed
Why
The native Windows failure documented in #826 occurred after the moved stage's
included_filesdirectory had already been proven absent. Cleanup nevertheless repeated descendant file-state and fallback-ancestor work for every recorded file: about 20,000 unnecessary file-state probes and about 240,000 redundantlstatcalls at 10,000 entries.#831 separated the broad Windows transaction suite from the exact 10,000-entry scale gate without increasing either 20-minute timeout. That makes the gate reliable and independently observable, but it does not remove this production cleanup cost. This PR fixes the measured absent-subtree path. The distinct present-tree repeated-parent optimization remains scoped to #828 and is not a prerequisite for this fix.
Windows CI contract
Fresh checks at the exact rebased head must satisfy both #831 jobs:
windows-artifact-transactionsruns the broad Windows transaction coverage onwindows-2025/ CPython 3.12.10 withGM2GODOT_SKIP_WINDOWS_INCLUDED_FILES_SCALE_GATE=1; only the exact 10,000-entry case may skip there.windows-included-files-scalerunspython -m scripts.run_windows_included_files_scale_gatewithGM2GODOT_REQUIRE_WINDOWS_INCLUDED_FILES_SCALE_GATE=1. Its fail-closed runner must collect and execute exactly the pinned 10,000-entry test, with no skip, failure, error, expected failure, unexpected success, or fixture exit.Both jobs retain the unchanged 20-minute timeout. The broad job must pass, and the dedicated scale job must pass with substantial timing margin.
Local validation at rebased head
4b6716a4.7.1.stable.official.a13da4feb.git diff --checkpassed; the diff is the intended 15-file scope.#831's workflow, fail-closed runner, and workflow-policy files are byte-identical to
main.Exact-head acceptance
All 20 expected checks at
4b6716ae6b30424ed5318e65a579fbfeaa7d4f0dcompleted with 17 successes and the 3 expected PR-only release skips; there were no failures, cancellations, duplicates, missing records, or unexpected checks.ok, and only the exact 10,000-entry case delegated to the dedicated job. Whole job: 8m08s, leaving 11m52s.OK, zero skips. Whole job: 10m43s, leaving 9m17s.OK (skipped=2). Whole job: 15m48s.OK (skipped=151), 81.38% coverage; native bind-mount gate 1/1.4.7.1.stable.official.a13da4feband passed 83 + 60 tests.The PR is ready for a normal merge.