Skip to content

ci: #1173's review fixes — the guest runner never holds main's scope, iowait is idle, non-green runs keep logs - #1177

Merged
Japabu merged 2 commits into
mainfrom
ci/guest-runner
Nov 4, 2026
Merged

Japabu merged 2 commits into
mainfrom
ci/guest-runner

Conversation

@Japabu

@Japabu Japabu commented Nov 4, 2026

Copy link
Copy Markdown
Collaborator

Lands #1173's review-r1 commits, which the merge queue left out. GitHub's PR view had stuck at 4068d86ba, so #1173 merged as 2c2f957cb from that stale head. The reviewed head was c32b69e8e.

Commits (reviewed: r1 LAND, #1173 (comment)):

  • 2d29d98db: review r1 of ci: guest rows on demand on the guest runner; a run beside other work ends HOST NOT QUIET #1173.
    • B1: the dispatch has no rev input; it is dispatched by --ref <branch>, refuses main, and has permissions: {} and no actions/cache. The guard test pins all three.
    • B2: idle and iowait are summed, and the subtraction is wrap-safe (iowait_going_back).
    • B3: every non-green run keeps its serial logs, and the workflow uploads them on failure.
    • B4: QEMU is pinned to 11.1.2.
    • S1/S2: the first-run plan and the dedicated-user prerequisite.
  • c32b69e8e: an issue record for the narrow-guest queue test race seen in r1's host CI.

Exposure. Main currently carries the r0 workflow, with a rev input and without the main-ref refusal. No runner is registered (the runner count is 0), so the workflow cannot run. Register the runner only after this lands.

Evidence: https://github.com/ToyOSOrg/evidence/tree/067de8d244ac7e8c517cf1039ec692f5241c097f/pr-1173/r1

🤖 Generated with Claude Code

Japabu and others added 2 commits November 4, 2026 11:23
…le, and every non-green run keeps its logs

- B1: `guest-rows.yml` drops `rev`; a dispatch names the branch with
  `--ref`, and the job is refused on main. It holds `permissions: {}` and
  uses no cache action: the runner's workspace is its cache, and code that
  outlives a job on that machine never sees a token of main's cache scope.
  The guard pins all three for every self-hosted workflow.
- B2: `/proc/stat`'s idle and iowait are taken as one sum, since the kernel
  moves time from iowait to idle and iowait alone can decrease; the
  counters are differenced with wrapping arithmetic at their width.
  `iowait_going_back` feeds two such readings.
- B3: `Run::exit` keeps the serial logs on every status but green; the
  `rows` job first removes what earlier runs kept, and the workflow uploads
  this run's as the `serial` artifact on failure.
- B4: `build/ci/qemu-version` moves to 11.1.2, the guest runner's QEMU. The
  frozen nightly's container still carries 11.1.1, recorded in its issue.
- S2: the runner's dedicated user and its readable credentials, in the
  workflow's host list.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…the wide waiter

Seen in #1173's host checks under load; independent of that change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Japabu
Japabu added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit 4610c48 Nov 4, 2026
5 checks passed
@Japabu
Japabu deleted the ci/guest-runner branch November 4, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant