Development record
TestAPullRequestWhoseReceiptsNameNoModelIsNotOpened is flaky and twice dropped a merge-queue entry (the run that landed #935): t.TempDir cleanup fails with "origin.git: directory not empty". newLandFixture in internal/core/implement/loop/land_test.go creates its bare origin with a plain git init --bare, so the origin lacks the gc.auto=0, gc.autodetach=false, maintenance.auto=false and core.fsmonitor=false config that gittest.NewRepo writes for exactly this race (iss-252). A detached auto-gc child spawned by a push into the origin outlives the test and writes objects while cleanup removes the directory. About 17 other git init --bare calls in 15 test files share the gap.
TestAPullRequestWhoseReceiptsNameNoModelIsNotOpened is flaky and twice dropped a merge-queue entry (the run that landed #935): t.TempDir cleanup fails with "origin.git: directory not empty". newLandFixture in internal/core/implement/loop/land_test.go creates its bare origin with a plain git init --bare, so the origin lacks the gc.auto=0, gc.autodetach=false, maintenance.auto=false and core.fsmonitor=false config that gittest.NewRepo writes for exactly this race (iss-252). A detached auto-gc child spawned by a push into the origin outlives the test and writes objects while cleanup removes the directory. About 17 other git init --bare calls in 15 test files share the gap.
Frontmatter
| id | iss-2610112202081803 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610112202081803-testapullrequestwhosereceiptsnamenomodel.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-252TestEmitRefuses/an_added_record_carries_no_impact flakes on CI teardown: t.TempDir RemoveAll fails with 'unlinkat .../001/.git/objects: directory not empty' — the subtest's assertions pass, but a background git process spawned in the scratch repo (auto-gc/maintenance or fsmonitor) is still writing objects when cleanup runs. First observed on the v0.5.0 release verify job (run 31960563726), where it fail-closed the whole release after the tag was pushed; a rerun recovered it. Fix direction: the gittest scratch-repo helper should disable background maintenance (gc.auto=0, maintenance.auto=false, core.fsmonitor=false) at init so no child process outlives the test. Detector: the release verify Test step; acceptance: the suite survives teardown on CI without rerun.