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

Cases5 cases

1 to 5 of 5

  1. Symptoms

    In ByteDance's production LLM training cluster, GPUs with hardware defects silently corrupted computation without any error signal. Training jobs either crashed with errors that looked like software bugs, such as a shape mismatch or an out-of-bound access, or kept running with sudden loss spikes until engineers stopped them by hand. Of the 23 SDC-defective GPUs the paper characterises, 13 surfaced this way during active LLM training and 10 were found in offline stress tests that used online workloads and failed numerical validation checks.

    Root cause
    Component
    Contributing factor
    Detection

    Corruptions surfaced as crashes, NaN or loss spikes in training jobs, or as failed numerical validation in offline stress tests that used online workloads; ECC, thermal and other hardware signals did not show them.

    Remediation
    • Halted the training and took the affected nodes offline to confirm the defective GPU
    • Isolated the suspicious data-parallel group and resumed the training job from a checkpoint on healthy machines
    • Confirmed the defective GPU offline by replaying the alert-triggering trace and checking it with hardware tools
    • Sent the confirmed defective GPUs to hardware repair
    • Enabled every deterministic setting in production training, including torch.use_deterministic_algorithms, so anomalies could be replayed bit for bit
    Lessons

    SDC diagnosis has to be part of the training control plane rather than a separate hardware test: the most useful step during an incident is to take suspicious machines out of the training path quickly and leave device-level confirmation to offline analysis. Replaying the exact workload works better than synthetic stress tests, because many defective GPUs fail only on the kernels, data ranges and communication schedules that triggered the original anomaly, and because occurrence rates vary so widely a fixed-duration stress test is not a reliable acceptance check; production systems should keep the alert-triggering trace. Deterministic training turns ambiguous symptoms such as loss spikes into reproducible comparisons, and SDCs appear throughout the hardware lifecycle, so GPUs need continuous monitoring rather than checks only when new.

  2. Symptoms

    Large LLM training jobs on Alibaba's AI clusters crashed again and again and had to restart from the last valid checkpoint. One of the largest jobs, on 4,096 GPUs in a newly deployed cluster, crashed 40 times in one month, and most crashes reached users only as "NCCL Errors".

    Root cause
    Component
    Contributing factor
    Detection

    Before C4D, users found crashes through NCCL errors and could stay unaware of a stalled job for up to 30 minutes until the PyTorch elastic agent killed it; C4D later detects hangs and slowdowns from collective communication timings within tens of seconds.

    Remediation
    • Allocated 64 backup GPUs on 8 servers for every 1024 GPUs on 128 servers, so that parallel training on any 128 servers of the 136-server pool keeps the same communication and performance
    • Deployed C4D to detect faulty nodes automatically, isolate them and restart the job from the most recent valid checkpoint
    • Saved checkpoints more often, every 10 minutes, to cut the work lost after each crash
    • Enhanced cooling with higher fan speeds and better air conditioning to keep GPUs from overheating
    • Identified and enhanced the most vulnerable components of the system, lowering the average error rate 3.33 times
    Action items
    • Take load variation into account in C4D for more precise slow detection
    Lessons

    Most crash causes are confined to specific nodes or devices, so isolating the faulty component quickly and restarting, while leaving root cause analysis for offline work, removes most of the error-induced downtime. Because synchronous training makes many different faults look like the same communication error, diagnosis has to use the regular rhythm of the workers at synchronisation points rather than the error message, and frequent checkpoints matter because error rates in large clusters are high.

  3. 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.

  4. Symptoms

    On a shared production cluster of over 10,000 GPUs, large hybrid-parallel training jobs kept running but slowed down, sometimes for hours, without crashing. Among 27 jobs of 512 to 1024 GPUs each submitted in July 2024, 16 slowed this way for 72 minutes on average, and their job completion time grew by 34.59% on average.

    Root cause
    Component
    Contributing factor
    Detection

    The authors found fail-slows with small probe training jobs that tracked their own performance at runtime, and by inspecting by hand a one-month trace of large training jobs.

    Remediation
    • Found fail-slows by hand and handled them as fail-stops with checkpoint-and-restart
    Action items
    • Detect fail-slows at runtime from iteration times and locate the slow GPUs and links with Falcon-Detect
    • Mitigate fail-slows with Falcon-Mitigate, escalating from cheap strategies to checkpoint-and-restart only if the slowdown persists
    Lessons

    Fail-slows are usually transient and come from computation, through slow GPUs or CPU contention, or from communication, mostly network congestion. Computation fail-slows are rarer and shorter and cost less, while cross-node communication fail-slows are more common, last longer and slow training more. As training grows, several performance problems are more likely to occur at once, and together they can slow training by more than 90%.

  5. 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 5 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 cause2