Skip to content

quorum receipt reports STALE for a correct receipt on some runners; the same head passes on rerun — the gate prints nothing to diagnose it #573

Description

@noahgift

What happened

The quorum receipt check sometimes reports STALE for a correct receipt at an unchanged head. Re-running the same job on a different runner passes, with no change to the head or the receipt.

PR head failed on CI "tree" hash passed on rerun
#563 5395900 intel-clean-room-3 (run 34988152076) 320a68de… head moved on before a rerun
#569 56441f1 intel-clean-room-3 (run 35001751555) 1523c3a6… intel-clean-room-4 (attempt 2)
#569 e91639e intel-clean-room-11 57292577… intel-clean-room-2 (attempt 2)

Locally, PRINT_HASH=1 scripts/quorum-gate.sh gives exactly the receipt's hash for each head. The CI hash matches no diff I could construct: I recomputed git diff <merge-base> <head> with the gate's own pathspecs against merge-bases cb94fc2, bfac33c, 8b2cced and ddd0c44, and none reproduces it. The same runners pass other heads (intel-clean-room-11 passed 09062f6). So it is not a fixed per-runner git config. It looks like per-run state in the persistent work directory.

Why it matters

A gate that reports STALE for a receipt the rerun accepts cannot be told apart from a real stale receipt, and the only way through is a rerun. That is flaky, which makes it red until the cause is found.

Done when

  1. On STALE, the gate prints merge_base, BASE_REF's resolved sha, git rev-parse HEAD, and git diff --stat of what it hashed. The next occurrence then names its own cause instead of needing a rerun.
  2. The cause is found and fixed. Suspects: a stale refs/remotes/origin/main in the runner's persistent clone (the fetch step's || git fetch origin main fallback updates FETCH_HEAD, not the remote-tracking ref); a leftover index or worktree from a previous job on that runner.
  3. A test drives the gate against a clone whose origin/main lags the real base and asserts it refuses with the resolved shas named, not a bare STALE.

Found while landing PMAT-562/PMAT-564.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions