Observed since 21 Oct, 10:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A machine-checkable standard for AI-cluster chaos-engineering fidelity: which fault injection tests which layer.
Most chaos experiments on AI clusters test the wrong thing, and nobody notices. A pod kill is not an XID. Overlay NetworkChaos is not an InfiniBand flap — and neither is tc/netem on the RDMA NIC, because RDMA bypasses the kernel the way tc works on. A DCGM field injection tests your telemetry pipeline, not your GPU. Get the layer wrong and you certify a recovery behavior that will not fire on the real fault — you retire the risk on paper. Certifying the wrong injection is worse than certifying nothing.
This repository is a standard that makes fidelity mechanical: an eight-layer fault model, a spec schema for a chaos experiment, a linter that fails a wrong-layer experiment in CI with the reason, and a vetted catalog of 20 reference experiments that all pass. It is deliberately narrow, literature-independent, and adoptable — bring your own experiments, run them through the linter, and know that what you certified is what you think you certified.
Part of a series on turning GPU capital into usable compute (see Series). Its companion, the reliability-economics study, prices what these experiments certify in GPU-hours. All factual claims trace to REFERENCES.md.
An AI cluster fails on eight layers that each emit a different signal and heal a different way. An injection is only as good as the layer it actually hits:
| Wanted fault | The one honest injection | What people reach for instead (the linter rejects it) |
|---|---|---|
| Uncorrectable ECC / XID | DCGM field injection [6] — certifies the telemetry → cordon loop, not device physics | overlay packet loss, pod-kill |
| Rank death | pod-kill / SIGKILL a worker [1] | NetworkChaos on eth0 |
| InfiniBand / rail flap | a real link fault — switch port bounce, ibportstate, vendor link-disable | tc/netem on the NIC (RDMA is kernel-bypass — it never reaches the collective) |
| CPU desync timeout | stall one rank's CPU, GPU healthy [12] | GPU reset / device inject |
| Bad checkpoint | IOChaos fault/mistake on the ckpt path [1] | pod memory stress |
| Wrong model served | mount the wrong digest | kill the router |
The full reasoning — including why tc on an RDMA NIC is the overlay-vs-fabric mistake one level deeper, and why DCGM injection certifies the telemetry plane rather than the silicon — is in docs/fidelity-taxonomy.md. The operational how-to (the actual dcgmi commands, the XID→heal map, the Chaos Mesh forms) is the runbook in docs/injection-methods.md.
The two clocks are why the fabric experiment matters: when a rail drops, the InfiniBand transport gives up in ~30 s (NCCL_IB_TIMEOUT, default 20, ×7 retries [11]) while the PyTorch NCCL watchdog default is 600 s [10]. Tune only the watchdog and you tuned the wrong timer.
Three parts, all in this repo:
catalog/validate.py) that enforces two things and rejects anything that fails:
tc/netem, an XID faked with a pod kill, a desync injected with a GPU reset: each fails validation with the reason.ib-link-down, gpu-burn, chaosd-nic) must be flagged agent_forbidden so no autonomous planner can fire them.catalog/) that all pass, plus the taxonomy and runbook docs. Copy from it, or lint your own against the same rules.pip install pyyaml
make test # lint the catalog + prove wrong specs are rejected
python3 catalog/validate.py your-experiment.yaml # lint one of your own
Or install the linter as a command and run it on your own specs anywhere:
pip install git+https://github.com/dimaggi-ai/ai-cluster-chaos-fidelity
chaos-fidelity my-experiment.yaml # lint one spec (or a directory of them)
chaos-fidelity # lint the bundled reference catalog
The linter is the point: a prose taxonomy gets nodded at and violated under deadline; a machine rule fails the pull request. The validator tests prove that hand-written wrong specs — including the subtle tc-on-RDMA case — fail for the stated reason.
The standard is tool-agnostic on purpose: the specs name a technique, not a vendor. Chaos Mesh [1] supplies the Kubernetes-layer forms here, but the same experiments run under Litmus [2] or a cloud fault-injection service [4] when the cluster is managed; ChaosEater [3] is the current precedent for generating specs like these with an LLM — exactly the loop the governed-autonomy sequel governs.
A checklist is advice; a standard is enforcement with an ecosystem. This repo is versioned (SPEC.md carries the version), the schema is stable, and the catalog is meant to grow by contribution — see CONTRIBUTING.md. The honest scope is stated up front, including the failure classes the catalog does not yet cover (SDC, correlated power/cooling, stragglers, checkpoint-store outages) in catalog/README.md — listing them is the alternative to a coverage matrix that looks complete because it is small.
pip install pyyaml
make test # validator (20 specs valid) + rejection tests
python3 catalog/validate.py # lint the whole catalog
python3 catalog/test_validate.py
Python 3.11+, pyyaml. The checks run on every push via CI — a machine-checkable standard must machine-check itself.
Margaret (Maggie) Nanyonga — Founder & Principal Architect, DIMAGGI AI. Governed AI infrastructure: the control, reliability, and audit layer for autonomous systems operating production networks and compute.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.1 | 30 Aug 2026 | 1 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 21 Oct, 10:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e997f2543355443870eb74341c479c69dff51e3ba1df16df281d63fe24229b23