Skip to content

Prevent detached Git maintenance from racing sparse fixture cleanup - #4857

Merged
Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
Clear1nsight:fix/package-ci-helper-20261023
Oct 23, 2026
Merged

Mister-Meeseeks merged 1 commit into
CrocSwap:mainfrom
Clear1nsight:fix/package-ci-helper-20261023

Conversation

@Clear1nsight

@Clear1nsight Clear1nsight commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Change and mathematical scope

The shared registered-package planner for #4848 failed after its sparse-baseline test completed, while TemporaryDirectory was deleting .git/objects: OSError: [Errno 39] Directory not empty. Original run 39860907480 ran 346 helper tests with one cleanup error and 11 platform skips. No package replay started.

Disable automatic maintenance and automatic GC only on commits creating the disposable sparse-baseline Git fixtures. Git 2.55 Trace2 records show the original helper spawning git maintenance run --auto --quiet --detach. Such a child can outlive the commit and recreate object directories while the fixture is deleted. The command-scoped settings follow existing test-fixture conventions in this repository. This changes one test file; production helpers, workflow permissions, scientific packages, frozen inputs and the selected result retain their bytes.

Task and overlap

Explicit user-assigned upstream CI repair, based on canonical main 624de9dc66858af0945e5f8a0942488d62280d43; scope unchanged. The nearest affected PR is #4848 at 890fadd4683ac206fa0c39ad58ff80932bdba26b. #4839 and #4842 pass their own exact-head workflows. Targeted reads of all nine returned open Clear1nsight PRs show #4848 as the only failed exact-head workflow.

Current AGENTS.md, CONTRIBUTING.md, autoresearch.md, workflow and PR-intake guidance were read. The prescribed delta-only intake refresh fetched canonical main but its queue read could not run because gh is absent; targeted GitHub connector reads supplied the PR/workflow observations. This change makes no queue acceptance or scientific review decision.

Validation

The new real-Git regression forces automatic maintenance to be eligible even in a tiny repository. It rejects the original commit helper because a maintenance child starts, passes with the repair, and proves its observation is active by requiring an unguarded positive-control commit to start maintenance. The positive control explicitly waits for foreground maintenance so it cannot recreate the cleanup race.

Environment: Ubuntu, Python 3.12.3, Git 2.55.0. Hosted failure environment: Ubuntu 24.04.5, Python 3.12.15, Git 2.55.0.

python3 -W error -B -m unittest discover -s tests -p test_research_baseline_sparse.py -v
python3 -W error -B -O -m unittest discover -s tests -p test_research_baseline_sparse.py -v
python3 -B -m unittest discover -s tests -p 'test_research_*.py' -v

At exact fix commit 840e285b6ae0c36e5873ec63c2db7d3bb312e7dd, normal and optimized focused suites each pass all nine tests. The full workflow helper command passes all 347 tests in 149.727 seconds with 11 expected native-Windows platform skips. An initial full local attempt omitted reference fixtures from the sparse checkout and failed; after materializing the declared fixtures, the complete command passed. That incomplete attempt is retained and is not counted as validation. The exact-head affected-package planner succeeds with count=0 and an empty matrix, as expected for a test-only repair. No full historical or Lean suite is run; Hosted run 39863785081 passed at this exact head: all 347 helper tests pass with 11 expected skips, the planner emits an empty matrix, and scientific replay is correctly skipped.

Credit

Retains the existing sparse-baseline preflight and fixture work by Douglas Colkitt and lizhi, including the explicit-inventory improvements in 48aef2349dc761f6b3b6bf3e59c3ee8080dbbe7a. CI repair by Clear1nsight with substantial OpenAI Codex assistance. Existing licences and attribution are retained.

Open next questions

The standalone planner passed. The additive repair on #4848 is exact head d5772576a9f260768d39eea0adde36e08602e889; its new hosted run completed successfully: all 347 helper tests pass, the selected scientific package replay passes, and the committed-input mutation gate passes. A passing helper test does not establish the mathematical claims or scientific acceptance of #4848.

Required handoff records the original failure and exact repair heads.

Hosted additive integration

PR #4848 now includes this test-only repair in additive head d5772576a9f260768d39eea0adde36e08602e889. All 16 scientific package files remain byte-for-byte identical to its original 890fadd4683ac206fa0c39ad58ff80932bdba26b head. Run 39863812767 passes its 347 helper tests, sole selected complementary-consumer package replay (outcome=negative-result) and committed-input mutation gate. The original failed run remains retained evidence. No merge or scientific acceptance is claimed.

Disable command-scoped auto maintenance and GC on disposable fixture commits. Add a real-Git Trace2 regression with forced automatic work and an unguarded foreground positive control.

Fixes the cleanup failure observed in registered-package run 39860907480 for PR CrocSwap#4848. Developed with substantial OpenAI Codex assistance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants