Skip to content

bench: the runbook's STELLA_BINARY path is 291 commits stale and passes the pinning check #2032

Description

@macanderson

Problem

~/.arenabench/sut/stella — the path every runbook and launch script sets STELLA_BINARY to — is exactly 291 commits stale, and nothing refuses it.

~/.arenabench/sut/stella                      sha256 4cf1c1da…   Aug 4 19:22
~/.arenabench/sut/sut_commit.txt              47d587a37da0e1013010f4479295b33878760b7d

~/.arenabench/sut/6c3455326adfb04c0b3dcb35aad192c0f78b6e33/stella
                                              sha256 1c658620…   Aug 6 20:49
$ git rev-list --count 47d587a3..6c345532
291
$ git rev-list --count 6c345532..origin/main
12

This is the same 291-commit staleness that already invalidated every match run Aug 4–7. PRs #2016/#2020 fixed the measurement half — the SUT is now pinned by commit and written to sut/<commit>/stella, and an unpinned run refuses — but the legacy sut/stella path was never repointed or removed, and it is still what the operator-facing launch instructions name:

ARENABENCH_STELLA_ADAPTER=/Users/macanderson/Projects/stella/bench/harbor_adapter \
STELLA_BINARY=/Users/macanderson/.arenabench/sut/stella \
nohup uv run arenabench serve > ~/.arenabench/server.log 2>&1 &

A bench cycle launched that way silently measures a 291-commit-old agent and the result gets attributed to current code. That is the precise failure mode the commit pinning was introduced to end; it survives because the pinning added a new correct path instead of invalidating the old wrong one.

Why it is not caught

The refusal added in #2016/#2020 triggers on an unpinned run. sut/stella is accompanied by its own sut_commit.txt (47d587a3), so it looks pinned and passes — it is pinned, just to a commit from three days and 291 changes ago. Staleness and pinning are different properties and only one is checked.

What to do

Pick one, in rough order of preference:

  1. Delete ~/.arenabench/sut/stella and make the bare path an error. Force STELLA_BINARY to resolve through sut/<commit>/stella, so naming a binary without naming its commit is impossible.
  2. Make sut/stella a symlink to the newest pinned build, refreshed by whatever writes sut/<commit>/. Keeps every existing script working and cannot go stale.
  3. Add a staleness refusal beside the pinning one: compare the resolved SUT commit against origin/main and refuse (or require an explicit override) past some distance. This is the only option that also catches a pinned-but-ancient build reached by a path nobody anticipated.

Whichever is chosen, update the operator runbook and ~/.arenabench/serve-both-benchmarks.sh in the same change, since the stale path is copied by hand between sessions.

Verify

$ readlink -f "$STELLA_BINARY"
$ cat "$(dirname "$(readlink -f "$STELLA_BINARY")")/sut_commit.txt"
$ git rev-list --count <that-commit>..origin/main

Done when a run launched from the documented runbook either uses a binary within a stated distance of main, or refuses with a message naming the commit and the distance. A witness: point STELLA_BINARY at sut/stella (47d587a) and confirm the launch refuses, where today it proceeds and produces scoreable trials.

Constraints

  • bench/harbor_adapter/stella_harbor/portability.py and host_attestation.py are where SUT identity is currently attested; the check belongs beside them, not in the adapter root (which is at its file-size ceiling).
  • Do not "fix" this by regenerating the stale binary in place — the point is that the path cannot express staleness, not that this particular build is old.

Related: #2016, #2020 (the commit pinning this completes).

Metadata

Metadata

Assignees

No one assigned

    Labels

    triageUntyped request — convert by adding bug / feature / epic

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions