Skip to content

bin-smoke on the macOS runner: projection_shape_bench fails the job when every tuner timing is refused for host contention #905

Description

@lukstafi

Observed on lukstafi/ocannl-staging PR #605 (a workflow-only change), macOS main leg, run https://github.com/lukstafi/ocannl-staging/actions/runs/33679084275/job/100410996322:

(cd _build/default/bin && ./projection_shape_bench.exe 2 2 smoke fwd seeds --ocannl_backend=cc)
   !! smoke_2x2 / default (untuned): every queued tuner timing was refused for host contention
   smoke_2x2: no seed arm was measured
1 cell(s) of this experiment could not be measured or failed parity -- see the !! lines.

The bench exits 1 on an unmeasured cell by design (bin/projection_shape_bench.ml ~line 892: "any cell that could not be measured is a failure of the run, not a blank"). That is the right contract for a benchmark run, but under @bin-smoke the executable is a runtime canary (gh-858), run by dune concurrently with @runtest in the same invocation on a 3-core macOS runner, so host contention is the expected state rather than an anomaly. The log shows test/training/data_parallel.exe running at the same moment.

None of the previous macOS main reds in the last 40 master runs had this cause (they were a tinygrad cache probe, a materialize-flip claim, and an exemption-count drift), so this is a new flake shape rather than a recurrence.

Possible directions, not decided:

  • have the smoke rule pass a flag (or env) under which contention refusal on the smoke group is reported but not fatal, keeping the exit-1 contract for real runs;
  • or make @bin-smoke depend on @runtest so the canaries run after the suite, not beside it;
  • or accept the run-level (locks ...) cost and take the training lock for the timing canaries.

Related: #855, #888, #892 (contention detection in autotune timing), #743 (hermetic driver for bin/ benches), #858 (why bin-smoke exists).

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions