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

Cases3 cases

1 to 3 of 3

  1. Symptoms

    Seven hours into a distributed training run on Databricks AI, the job failed with an NCCL timeout.

    Trigger

    A single InfiniBand port used for RDMA NCCL collectives went down once and recovered.

    Root cause
    Component
    Contributing factor
    Detection

    The training job crashed with the NCCL timeout. The continuous health checks, which watched InfiniBand port flapping by count, had not flagged the single flap.

    Remediation
    • Tuned the NCCL_IB_TIMEOUT defaults to be more resilient to short port-down windows
    • Used the port-down signal to crash the job and restart it from a checkpoint instead of waiting for the watchdog
    • Fed the investigation into gpu-monitor, whose RDMA fabric port-down check is thresholded on cumulative downtime rather than flap count
    Action items
    • Tune the NCCL_IB_TIMEOUT defaults to be more resilient
    • Crash and restart the job from a checkpoint on the port-down signal instead of leaving GPUs idle until the watchdog fires
    • Threshold RDMA fabric port-down detection on cumulative downtime, not flap count, in gpu-monitor
    Lessons

    For training impact the signal that matters is cumulative port downtime, not the number of flaps: one long enough flap can crash a multi-day run. NCCL_IB_TIMEOUT, with an effective default of about seven seconds, decides the outcome long before the PyTorch watchdog timeout does. Health checks need to cover the whole node lifecycle: active checks before workloads start, passive checks for silent degradation under load, and periodic multi-node NCCL fabric checks in between.

  2. Symptoms

    When Imbue brought up a cluster of 4,088 H100 GPUs on 511 hosts, about 10% of the machines failed to boot, mostly from physical problems: unconnected or miswired Ethernet cables, iDRAC hardware issues, broken power supplies, bad NVMe drives, missing internal wires, and network cards or GPUs that did not show up. In single-node GPU tests, Ubuntu server logs showed links between the GPUs and the PCIe buses or network cards reporting "limited width: x4 < x16". A few hosts had NVMe drives that locked up the whole machine when touched, drives that appeared in random order and got the OS installed on the wrong one, wrong temperature readings that kept fans at 100%, and CPUs limited to 2 GHz.

    Trigger

    Bringing a new InfiniBand-connected H100 cluster into service and running the first multi-node training jobs on it.

    Root cause
    Component
    Contributing factor
    Detection

    Automated hardware checks during provisioning, UFM alerts on temperature, error rates and flapping ports, Prometheus node exporter and DCGM metrics, per-batch MFU monitoring, and live debugging of stalled processes with Py-Spy, GDB and NVIDIA Nsight.

    Remediation
    • Automated checks for broken machines and sent faulty ones back to Dell or to data center staff
    • Reseated GPUs and internal PCIe cables and applied firmware upgrades
    • Downgraded the NVIDIA driver that caused wrong temperature readings
    • Rewired the top tier of the InfiniBand fabric into a single network and added checks that the wiring matched the design
    • Cleaned and reseated alerting ports and disabled the remaining alerting transceivers
    • Ran a burn-in workload through every InfiniBand port and disabled the ports that did not survive it
    • Enabled GPUDirect RDMA with an extra kernel module and PCIe ACS disabled
    • Disabled automatic garbage collection and scheduled it at set intervals on all hosts
    Action items
    • Release host-level health checks that confirm a host is free from known errors
    • Release an NCCL patch that improves logging around errors and stalls
    • Release a GPU stress test and NVLink and InfiniBand networking tests
    • Release a script that parses the UFM event log and decides which network ports to disable
    • Release a script that generates a burn-in workload exercising every InfiniBand link
    • Relaunch crashed runs automatically from the last checkpoint on the machines that pass health checks
    • Replace the disabled alerting transceivers
    Lessons

    Keep 10 to 20% more machines than a run needs, and network them so any working subset can be used. On the newest hardware expect about 3% of machines to break each week, mostly the same few machines breaking in different ways, so growing a set of known reliable "golden" hosts works better than chasing random failures. Write tests and automation for every kind of failure met, because each one comes back, and write tools that make opaque errors readable. Change only one thing at a time, and double-check the claims of new tools and people before building on them.

  3. Symptoms

    Between the team's 17 November 2021 update and 3 December 2021, the 175B-parameter OPT training run went down and had to be restarted more than 40 times, for hardware, infrastructure and training stability reasons. A hardware fault could stop the run for hours at any time of day, and several did over the Thanksgiving break.

    Trigger

    Nodes in the cloud training cluster failed with ECC errors, and each failure took the training run down.

    Root cause
    Component
    Contributing factor
    Detection

    During these two weeks the team added monitoring of train.log, GPU burn-in testing to detect memory errors, and automated InfiniBand testing.

    Remediation
    • replaced failed nodes, and later did it through a script
    • added GPU burn-in testing to detect memory errors
    • automated InfiniBand testing
    • added monitoring of train.log
    • debugged the cloud provider's Python API until checkpoint downloads from the blob store worked well enough
    Action items
    • Run an on-call rotation for the training run, with runbooks and tooling for the most common issues, and invite more people to join it
    Lessons

    At this scale cloud hardware failures are certain, and the team concluded that automating the handling of hardware failures is necessary. Without spare nodes and burn-in tests, each failure costs hours and a replacement can bring the same fault back. The team also concluded that cloud infrastructure instability is something to always prepare for, because the customer has no control over the underlying hardware. A checkpoint large enough to need hundreds of multi-gigabyte downloads makes the storage path part of recovery time.

Check your cluster for this

These 3 cases involve InfiniBand fabric and NCCL. 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