Skip to content

chore(quest): drop bench-host-lock, which #399 already delivers - #417

Merged
kixelated merged 2 commits into
mainfrom
quest/m2/speed/bench-host-lock
Nov 6, 2026
Merged

kixelated merged 2 commits into
mainfrom
quest/m2/speed/bench-host-lock

Conversation

@kixelated

@kixelated kixelated commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Proposes dropping quest/m2/speed/bench-host-lock.md: main already delivers its Goal.

Problem

The quest was planned at 18:58 UTC on 2026-11-06, in #401, after one collect --host kixtop deleted the shared copy that #399's collection was building from. Its plan was to extend #397's VPS flock to every host and skip a held host as busy.

#399 then merged at 20:26 UTC and fixed that clobbering another way (admin/bench-report, collect_host):

  • Each collection extracts into its own mktemp -d copy and removes only that copy. No collection clears a path another one uses.
  • The build, the benchmarks, and admin/build-cost all run under quest gate --host, which holds the whole host, local or remote. A second collection's run waits until the first one ends, so the shared target directory never has two runs at once.

The only part of the Goal that main does differently is that a second collection waits for the host instead of recording it as busy. #399 was reviewed and merged with the wait, after this quest was planned, so this PR takes that as the newer decision.

Approach

Waiting

  • Maintainer: delete the quest, or keep it for skip-as-busy? Options:
    1. Delete (recommended). fix(bench-report): hold each host with quest gate --host, and measure macOS noise #399's per-collection copies and quest gate --host already stop any collection from deleting or measuring over another one, on every host. Waiting returns a measurement where a skip would return only a busy record. To accept, mark this PR ready and merge it.
    2. Keep the quest, rewritten to skip instead of wait. collect would check whether the host is held and record it as busy instead of queuing. Every host would need a lock that is visible from outside quest gate, and macOS ships no flock(1). Choose this by commenting here, and the quest gets rewritten in this PR.

Notes for #397

#397 conflicts with main in admin/bench-report (git merge-tree reports a content conflict). Its host_script still clears the shared {work}/src and {work}/result.json. When it merges main, it should keep #399's per-collection copy and gate. Only the VPS lease, which the hosts' other tooling also takes, stays specific to #397. No change here depends on that.

Impact

  • No public API or wire change. Only quests change.

Models

Size: XS
Implementer: Claude Code, claude-opus-5-5, high effort

Review

Skipped: a quest deletion produced by quest rm, with no code, too trivial to need a review. quest check passes.

(Written by Claude Opus 5.5)

🤖 Generated with Claude Code

kixelated and others added 2 commits November 6, 2026 13:46
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kixelated kixelated changed the title Benchmark collections on one host can't clobber each other chore(quest): drop bench-host-lock, which #399 already delivers Nov 6, 2026
@kixelated
kixelated marked this pull request as ready for review November 6, 2026 21:58
@pullfrog

pullfrog Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Your OpenCode Go account is out of credit. Top it up, then re-trigger Pullfrog.

OpenCode Go's response
provider error: Insufficient account funds

Top up OpenCode Go →

Pullfrog  | Rerun failed job ➔ | View workflow run | via Pullfrog | Using glm-5.3

@kixelated
kixelated added this pull request to the merge queue Nov 6, 2026
@coderabbitai

coderabbitai Bot commented Nov 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 58 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b02440bc-8d64-447f-9d0e-a62ea9f4c02a
Commits

Reviewing files that changed from the base of the PR and between 0287be3 and e6b3831.

Files selected for processing: 2

  • quest/m2/speed/README.md
  • quest/m2/speed/bench-host-lock.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed e6b3831. No actionable findings in the quest deletion and matching index removal. The existing collect_host uses a unique temporary source directory, wraps the build/benchmark/build-cost run in quest gate --host, and cleans up only that source directory, supporting the stated direction of retaining queued host access rather than adding skip-as-busy behavior.

Verification: GitHub-only static inspection of both changed files and the relevant collection code. I did not run quest check, concurrent collections, or verify the gate implementation on each host.

Merged via the queue into main with commit 00fe19d Nov 6, 2026
7 of 8 checks passed
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