Repository navigation
Make Git.Files pagination tests reliable under Deno #948
Description
Make the Deno Git-observation pagination test reliable so an unchanged, healthy revision does not intermittently block main and downstream PRs.
The affected case is GO5 — pages are bounded, complete, and about one observation / defaults to 100 records, follows every page once, and honors a larger limit in packages/git/tests/git-observations.test.ts.
Evidence
- Exact unchanged commit:
726275be8ad4ed40ea121aae5d1f527281e61a53. - Runtime: Deno
v2.9.5, GitHub Actionsubuntu-24.04,test-deno (8/15). - Attempt 1 failed. The test raised:
Error: ENOENT: no such file or directory, readdir '/tmp/xmd-generated-a33iHq/checkout/.git/objects/d7'
- Attempt 2 passed, including this exact GO5 case and the required
greencheck, after rerunning failed jobs with no code change. Main still pointed to the same commit when verified. - Complete logs from both attempts are preserved in the delivery packet under
main-health-726275be-20261018T2116Z/.
The missing directory is inside the generated fixture's Git object database. The cause of its disappearance is not established. The successful rerun demonstrates intermittence; it does not establish a fix.
Additional runtime evidence from PR #952
The same GO5 case failed on the unchanged Slice head
73d3c2aa2b677a580ccd9af7eb9eb218ce2673ab, parent 726275be, in
CI run39217233006 attempt1:
- Node, test-node (5/10):
ENOENT: no such file or directory, scandir '/tmp/xmd-generated-jztRJY/checkout/.git/objects/de'. - Bun, test-bun (5/5):
ENOENT: no such file or directory, scandir '/tmp/xmd-generated-Tcz3en/checkout/.git/objects/ff'.
Both complete first logs were preserved before any rerun under
942/ci-39217233006-attempt1/ in the delivery packet. This occurrence is
not confined to Deno. Slice changes no Git package files; adding its test file
changes the weighted shard assignment, so differing shard names identify the
same existing test. One focused local Deno run of the Git-observations test at
this head passed without a code change; this does not prove cross-runtime
recovery or resolve the cause.
A source trace identifies an unguarded recursive readdir after a directory
inspection in the object-database containment walk. The actor removing the
fanout remains unproven. Any eventual correction must preserve the containment
and read-only guarantees in the acceptance below; no proposed tolerance is
accepted solely on this diagnosis. No repair is included in PR #952.
Acceptance
- Identify why this test can attempt to read a missing fixture object directory and correct the responsible lifetime or filesystem behavior.
- Preserve the 1002-path pagination coverage and the Git read-only guarantees; do not hide the failure by ignoring missing paths or weakening the assertions.
- Add focused evidence that fails for the identified cause and passes with the correction.
- Verify the affected test with
deno task test packages/git/tests/git-observations.test.tsand the relevant CI runtime. The shard can be run withdeno run --allow-all --frozen scripts/runtime-tests.ts deno 8/15for the recorded corpus.
Related main-health issue: #947. This flake issue remains open until the cause is fixed and regression evidence is recorded; the green rerun only restores main's health.
Activity
🚨 Keep generated pagination fixtures free of automatic maintenance (#948