mudler / mudler/vllm.cpp

scripts/opt-dgx-gate.sh says it runs the gate series under a flock and never takes one

Open Beginner friendly
#2,798 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Row: UPSTREAM-SYNC-HEADPIN

scripts/opt-dgx-gate.sh:4 says, in the script's own voice:

# Runs the whole gate series under ONE `flock ${GPU_LOCK:-$HOME/gpu.lock}` so the measurements are
# uncontended and a concurrent agent queues rather than interleaves;

It does not. flock appears exactly once in the file, on that comment line, and
never as a call:

$ grep -n flock scripts/opt-dgx-gate.sh
4:# Runs the whole gate series under ONE `flock ${GPU_LOCK:-$HOME/gpu.lock}` so the measurements are
$ grep -cE '^[^#]*\bflock\b' scripts/opt-dgx-gate.sh
0

The positive control is that other runners in the same directory do call it —
scripts/dspark-paired-e2e.sh, scripts/laguna_longctx_bench.sh and
scripts/dgx-gdn-packed-bridge-ab.sh all match ^[^#]*\bflock\b.

git log -S'flock' -- scripts/opt-dgx-gate.sh returns only aa65ce7b1, the
commit that created the file, so the call was never present and never removed;
the comment has been describing an invariant that has never held.

Why this matters rather than being a stale comment. This is the #777 family:
a mutex that is documented and not taken fails silently, because nothing reports
the absence and every run looks the same. #777 cost another session a full
standalone Marlin series, and 573716f332 — the commit that fixed it — touched
this very file without catching this line. An agent reading the header believes
the OPT gate series and its seven regression gates are serialised against a
concurrent agent. They are not, unless the caller happens to wrap the whole
invocation, which the Usage: line eleven lines below does not mention.

Two other scripts mention flock without calling it, and neither is this
bug.
scripts/mxfp4-online-serving-grid.sh:15 states it as a precondition on
the caller's shell ("both flock locks free"), and
scripts/dgx-sglang-low-concurrency.sh:7 describes the campaign rather than the
script. Only opt-dgx-gate.sh asserts the action in its own voice.

The fix

Correct the header to say what the script does and who must hold the lock.
Do not add a flock call without deciding its relationship to the rc
lease first: AGENTS.md now makes the lease the required path to a fleet device
and says the file mutex runs inside a lease and never instead of one, so a
lock taken here needs to be the inner one, not a second truth. Two mutexes that
do not exclude each other are the failure this family is named for.

Why it is not fixed in the flow that found it

Found while specifying the token-exact gate at e126687a9a (#2794), which cites
this runner as the harness for our arm but does not invoke it. The repair
changes what a gate runner claims about contention, which is a decision about
the lease/mutex relationship rather than a typo, so it is listed under ## Owed
in .agents/specs/upstream-sync-headpin-tokengate.md rather than bundled into a
wave that measures something else.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with scripts/opt-dgx-gate.sh:4 and read AGENTS.md for the lease and mutex requirements. Check .agents/specs/upstream-sync-headpin-tokengate.md for the owed repair, then compare the other runners' flock usage. Done means the header accurately describes the caller's locking responsibility without claiming that this script takes the lock.

Written by the indexing model from the issue text.

Assessment

Tech stack
bash
Domain
devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.