Skip to content

rc granted dgx:gpu0 with 114 of 119 GiB host RAM still in use, and the next job's build lost the worker #1709

Description

@localai-bot

rc handed out dgx:gpu0 with 114 of 119 GiB of host RAM still in use, and the next job's build lost the worker. This is the third worker loss on this box with no recorded cause, and this time the losing job's own first phase printed the number that explains it.

rc job 5fb9399f-4f4e-417c-adbd-4d741a2e18e4, dgx:gpu0 (GB10, driver 580.173.02), 2026-08-22, submitted by claude/mudler-ubuntu-box/ltx25-pixel-ab-1612 running scripts/ltx25-dit-attn-flash-pixel-ab.sh for #1612. It queued behind two jobs, was granted the device, and at [pixab +0s] — before it had allocated anything — its own environment phase printed:

Mem:  total 119   used 114   free 1   shared 0   buff/cache 4   available 5

Five GiB available at the instant the lease began. The job proceeded: cmake configured cleanly (CFG_RC=0, CUDA target architectures: 121a, cutlass-nvfp4 / cutlass-fp8 / FlashAttention-2 all ENABLED), ninja -j 4 started at [pixab +38s], the harness's own liveness line ticked to [pixab-alive +728s], and then the client received:

rc: log stream ended: unexpected EOF
rc: job 5fb9399f-4f4e-417c-adbd-4d741a2e18e4: lost: worker re-registered

Nothing was measured. The build never completed, so not even the binary cache was written. rc devices showed the box ready again shortly afterwards and a different job took it.

"Worker re-registered" is the same signature as the two previous losses, and the leading hypothesis has always been host-RAM exhaustion — GB10 shares host RAM with the GPU and an unconstrained job has OOM-rebooted this box before. What is new here is that the hypothesis now has a measured precondition rather than only a prior: four concurrent nvcc processes were started against 5 GiB of MemAvailable. .agents/specs/ltx25-dit-attn-flash.md §7.1 records the 2026-08-21 loss (20260821T092516Z) as having no proven cause precisely because no memory trace was taken; this run took one, at t=0, and it reads 5 GiB.

The part that is not the job's fault. The job had not run yet. Whatever held 114 GiB was the previous tenant's, or a host process outside any lease. The controller granted an exclusive device lease while the box was in that state, and nothing in the handover told the incoming job. A lease that is exclusive in the scheduler but not in memory is not exclusive for a box whose GPU allocates from host RAM.

What this owes, and to whom.

  1. The harness must not walk into it. scripts/ltx25-dit-attn-flash-pixel-ab.sh printed the number and proceeded. It gains a MemAvailable start precondition — floor derived from the recorded 20260820 baseline render at this geometry (baseline_used=4.643 GiB, peak_used=79.503 GiB, min_avail=40.13 GiB), a bounded wait so a recovering box is not refused, a distinct exit code on giving up, and the value logged again immediately before ninja so a future loss during a build has the fact this one lacked. Owner: row LTX25-DIT-ATTN-FLASH, in flow under LTX-2.5 DiT attention swap has no numeric or pixel comparison at production geometry #1612.
  2. Whether rc should hold a device back until memory is reclaimed is not this row's to decide, and it is the more general half. A per-device readiness condition on MemAvailable would have queued this job for a few minutes instead of spending a lease on an OOM, and it would protect every job on this box rather than the one harness that just learned the lesson. That belongs to whoever owns the controller's device-readiness policy, and it is filed here rather than fixed here.
  3. .agents/environment.md's DGX profile owes a line saying that a granted lease does not imply a reclaimed box, and that a job which needs most of host RAM should check before it builds.

Not fixed in flow for parts 2 and 3. Part 1 is fixed in flow under #1612.

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: Claude:claude-opus-5 [Claude Code]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions