Skip to content

test(autonomy): five low-severity items from the lane-stop-gate arm-claim verification #2086

Description

@kyle-sexton

Five low-severity items surfaced by the fresh-context verifier on #2065 (lane-stop-gate arm-claim
race). All outlived that merge; none is blocking. Filed together because they share one file and one
review pass.

The verifier's overall verdict on #2065 was DISCHARGED, evidenced by a clean 83/0 run on the branch,
82/1 with only the type-guard line deleted, and all five rc0 sites red when the hook is made to exit
127. These are what it found alongside that.

Test-harness defects — plugins/autonomy/hooks/lane-stop-gate.test.sh

  1. :804 — unchecked mkfifo can produce a false PASS. Demonstrated by stubbing mkfifo to
    fail: the case still reported PASS. A test whose setup can fail silently is not a test.

  2. :820kill -9 on the failure path orphans the grandchild. The FIFO case deliberately
    hangs the hook (that is the bug it proves); killing the subshell does not reap the grandchild
    blocked in open(). Observed live during verification — idle processes blocked on a FIFO in an
    already-deleted temp dir, which then survive the run.

  3. :699rc0 silently passes on an empty argument. Latent: no live call site passes one
    today, so this is a trap for the next test author rather than a current false PASS.

Runtime observations

  1. umask 077 is a no-op on MSYS, so the claim file lands 644. The claim sidecar's confidential-
    ity does not depend on mode — its content is a session id, and the exclusive-create is what
    provides the guarantee — but the umask line implies a protection it does not deliver on Windows.
    Either make it real or say it is advisory.

  2. A mid-lane downgrade to 0.13.0 can hand a bound record to a second session. The compatibility
    read added in 0.13.1 makes an older record's in-record owner authoritative, but a lane that
    downgrades mid-flight reaches code with no sidecar concept while a sidecar exists. Narrow window,
    operator-initiated, and the fail direction is over-gating rather than under-gating.

Suggested handling

1-3 are test-quality fixes and can land together in one pass. 4 is a one-line honesty fix on a
comment or a real chmod. 5 is worth a documented note rather than code, unless mid-lane downgrade
is a supported operation.

Provenance

Found during the stranded-review-findings sweep verifying PRRT_kwDOTCGFQM6WACHN (#1865) on PR
#2065. Deliberately not folded into that PR: none discharges the finding under repair, and the
branch was already carrying a P1 race fix that deserved a clean diff.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions