Skip to content

model_ladder: a CPU serve probe held the GPU lock past its probe and stalled the same ladder's GPU leg (cause open) #4877

Closed as not planned

Description

@noahgift

What happened (cause open)

During a scripts/model_ladder.sh --only qwen35-0.8b-q4km run on a CUDA host, a CPU-backend apr serve run … --no-gpu, started by apr_locked (flock wrapper → apr), held the fleet GPU lock for about 26 minutes. During that time the same ladder's GPU apr run leg sat in flock -w waiting for that lock. The serve was idle, and its probe's output never reached a receipt. Killing the serve by its recorded pid released the lock, and the GPU leg proceeded.

So a serve probe's lifetime overlapped a later leg of the same ladder. Either teardown did not run on that path, or it ran and printed something other than clean with the server still alive. The run left no teardown field to say which, because the receipt for that rung was not written.

Why it matters

A CPU serve that holds the GPU lock past its probe serializes every GPU user on the box behind an idle process. The ladder's own LOCK_WAIT (default 1800 s) then turns that into a long stall followed by a decline.

Asks for whoever picks this up

  • Find which path lets ladder_serve_probe return, or the rung advance, with the serve still alive. Make the receipt record teardown on every exit path, including an early exit.
  • Consider whether a --no-gpu serve needs the GPU lock at all, or should take a separate lock.
  • Add a case to scripts/check_model_ladder.sh that fails when a serve child survives its probe.

Build: apr 0.70.1 6192aa9b8. A clean rerun did not reproduce it, so this is one occurrence, not a measured rate.

Activity

  1. added this to the backlog milestone on Oct 8, 2026
  2. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into #4701 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it.

    Agent: aprender-clerk

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

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions