Skip to content

Bounded active CLI reads walk the event directory under longitudinal counting #702

Description

@kevinswiber

What

cli_derived_bounded_reads::eligible_active_cli_routes_never_walk_event_directory_entries fails on main. The first counted route — pointbreak history --repo <fixture> --limit 1 under POINTBREAK_DERIVED_ACCESS=sqlite-wal-bodyless-v1 — reports directoryEntriesWalked: 16 where the test requires 0.

Reproduce

Clean main at 523e34fb:

env -u POINTBREAK_ACTOR_ID cargo +stable nextest run --features longitudinal-counting \
  -E 'test(eligible_active_cli_routes_never_walk_event_directory_entries)'
tests/cli_derived_bounded_reads.rs:459
assertion `left == right` failed
  left: Number(16)
 right: 0

Reproduced independently twice, on main and on a feature branch, with identical counters.

The walk is the event directory

record_directory_entries_walked (src/storage/mod.rs:211) counts every Storage::list_dir call, so 16 could in principle have come from a non-event directory. It did not. A temporary probe on list_dir that appended the listed directory to a file showed every counted walk in the run resolving to:

<fixture-repo>/.git/pointbreak/events

So a bounded CLI read really does walk the event directory, which is exactly what the test forbids.

Likely proximate cause

The failing receipt also reports, inside the counted scope:

"projectionRebuilds": 2,
"changeCapabilityCarriersOpened": 2,
"carrierOpens": 19,
"eventDecodes": 1

projectionRebuilds: 2 suggests the derived projection built by the test's store derived build preparation is not being reused and the read is falling back. Confirming that is the actual investigation.

Eleven other tests in the same binary pass, including the sibling active_bounded_history_attention_and_revision_pages_use_projection_identity, which uses the same superseded_dump_repo() fixture and the same store derived build.

Why it went unnoticed

Neither lane that could have caught it runs this test:

  • the per-push test legs run just test-ci, which is featureless, and the test is #[cfg(feature = "longitudinal-counting")] (tests/cli_derived_bounded_reads.rs:420);
  • the 3-OS store-foundation-qualification job runs the 33-name just derived-access-tests filter plus the smoke, and this test is in neither pin set.

Its own history is quiet — the assertion is untouched since 108fa989 feat: route bounded CLI reads through derived access, and the counting site since 36190217 feat: add longitudinal counting derivative — so something else regressed it. This is the rot research 0054 predicted for a feature-gated lane nothing executes. It surfaced because the new just test-full recipe is the first thing to run that lane end to end.

Notes

Not a flake and not test rot: the walk is real product behaviour. Deliberately left unfixed by the test-wall reduction change that surfaced it, so an unrelated derived-access fix does not ride inside a build-time PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions