EPS
← All tasks·#1416Completed

workflow-fix: gotchas — GPU-free gate must read per-GPU memory.used (foreign-tenant GPUs invisible to compute-apps)

kind: infra#wf-fix#wf-fix-fp:42bb392c3386
track:

Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.

No comments yet.

Overview / Motivation

Auto-filed from a gotcha_candidate: yes failure-lesson on task #825 (emitting agent: experimenter, round-11 launch refusal, epm:failure v17 / epm:failure-lesson v7).

Goal

Add a gotchas.md entry (+ consider hardening the dispatcher gpu-guard pattern): a fresh RunPod pod can arrive with a GPU held by a FOREIGN host-level tenant — nvidia-smi --query-compute-apps reads EMPTY, in-container pgrep/proc scans are clean, yet --query-gpu=memory.used shows ~72 GB held and unkillable from inside; GPU-free gates must read per-GPU memory.used, never compute-apps alone.

Workflow gap

  • Bug observed: pod-825 (8xA100) GPU 4 arrived holding 72,505 MiB with zero compute-apps; the dispatch script's gpu_guard_one (compute-apps-based) would have passed straight through and the first GPU-4 job would OOM-abort the whole run.
  • Why it is a workflow gap: the canonical GPU-free guard recipe in gotchas.md / the dispatch-script lineage (issue825_naturalistic_s_dispatch.sh et al.) gates on compute-apps + VLLM::EngineCore reaping only; the foreign-tenant condition is invisible to it.
  • Confidence (emitter): high

Proposed change (candidate diff sketch — refine in planning)

  • gotchas.md GPU-guard entry gains: gate on nvidia-smi --query-gpu=index,memory.used
  • per GPU (threshold ~2-4 GB) IN ADDITION to compute-apps; a held-with-no-apps GPU on a
  • fresh pod is a defective provision — terminate + re-provision (unkillable in-container).
  • Worked example: #825 r11 experimenter refusal (epm:failure v17); memory at
  • .claude/agent-memory/experimenter/feedback_gpu_foreign_allocation_no_compute_apps.md.

Scope / surfaces

  • Primary target: .claude/rules/gotchas.md

Constraints / invariants

  • Workflow-surface only; workflow_lint passes.

Provenance

  • workflow_fix_target: .claude/rules/gotchas.md
  • fingerprint: 42bb392c3386
Activity