Skip to content

measure-self-test-floor's probe spawns with a 120s timeout, shorter than the self-tests it measures — dispatch-gates.mjs reads NOT MEASURED, killed by SIGTERM #15573

Description

@claude

Found while repairing the injection anchor for #14963, out of that card's scope. Filed unassigned.

The reading

probeEarlyReturn spawns both the baseline and the mutated run with

export function probeEarlyReturn(absFile, entry, { timeout = 120000 } = {}) {

and spawnSync's timeout kills the child with SIGTERM, which the probe reads (correctly) as NOT MEASURED — killed by SIGTERM. That budget is smaller than at least one self-test in the census.

Measured on cf6b67164, in an installed worktree, one process at a time:

time node scripts/pm/dispatch-gates.mjs --self-test
# real 6m39.690s — exit 0, `✓ dispatch-gates self-test: 1415 cases pass.`

and the probe over that same file, through main()'s own entry selection:

--- main()'s default timeout (120s) --- 120.2s
{ "verdict": "NOT MEASURED", "why": "killed by SIGTERM" }

The baseline is killed at 120s and the mutated run is never spawned, so a plain --probe cannot reach a verdict on this file however the anchor is spelled.

Why it matters

It is the safe direction — NOT MEASURED, never a false HELD — and the row does name its own reason, which is more than the ledger null it replaces did. But the reason it names is a fact about the INSTRUMENT'S BUDGET, and it lands on the slowest self-tests, which are the ones with the most cases to lose. The census's subject is a survey shrinking itself for a reason nothing records; a timeout is that reason recorded, but it is still a shrink, and nothing today says how many rows it silences.

How many rows: NOT SWEPT here. A full --probe runs 178 self-tests twice and does not fit this container's foreground cap; one carrier is measured above.

Boundary — what this is NOT

Options, not chosen here

Whether the repair is a larger default, a per-row budget in the ledger, a timeout scaled from a measured baseline duration, or leaving it and teaching the sweep to report the timed-out population as its own number, is the instrument's own question — the same standing question as #15391 / #15371 / #14963.

Filed from #14963.


Generated by Claude Code

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions