Incident Library
Applied filters ComponentSlurm job schedulerFactorMonitoring blind spotClear allEvery case under the filters, with no sentence; newest first.
Suggested filters Search, and the values found in your words appear here.

Graph

  • Root cause
  • Component
  • Symptom
  • Contributing factor
  • Case

Cases2 cases

1 to 2 of 2

  1. Symptoms

    In Meta's RSC-1 and RSC-2 research GPU clusters, certain nodes had above-average rates of job failures. After each failure the same nodes kept attracting new jobs and failing them too, while health checks and repair workflows did not flag them. Meta calls these servers lemon nodes.

    Root cause
    Component
    Contributing factor
    Detection

    Meta's lemon detection flags nodes from their history in per-node signals such as excl_jobid_count, xid_cnt, tickets, out_count and node failure counts, because the periodic health checks and repair workflows did not catch them.

    Remediation
    • Built lemon detection to proactively identify, isolate and replace lemon nodes in the Slurm scheduler
    • Identified 40 faulty nodes, 24 on RSC-1 and 16 on RSC-2
    Lessons

    Finding defective nodes needs historic data, and lemon node detection can improve the completion rate of large jobs by over 30%. A defective node that cannot be removed from capacity leads to restart loops that make large gang-scheduled jobs impossible to run, so recovery from random failures only works once defective nodes are reliably rotated out.

  2. Symptoms

    After many hours of training, one job of the tr1-13B Slurm job array crashed at iteration 43680 of 311541 during the backward pass. The next job in the array started by itself and crashed right away, before training began.

    Trigger

    One GPU on one node of the allocation developed a hardware problem that produced uncorrectable ECC errors.

    Root cause
    Component
    Contributing factor
    Detection

    Nobody was around to notice the first crash, and the Slurm scheduler started the next job in the array on its own, which crashed too.

    Remediation
    • Contacted the JZ administrators, who confirmed one of the nodes was faulty
    • Continued training with the next job, which was not placed on the faulty node
    Action items
    • Add %N to the Slurm output setting (#SBATCH --output=%x-%j-%N.out) so each node writes its own log file and the node with a corrupt GPU can be identified
    • Exclude a node known to be faulty from the allocation with sbatch --exclude
    Lessons

    Without a way to link an exception to the hostname of the node that raised it, the scheduler can keep placing the training on the faulty node and the training keeps crashing; per-node log files make the faulty node visible so it can be excluded.

Check your cluster for this

These 2 cases involve GPU hardware and memory and Slurm job scheduler. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.

By root cause1