Developer Tools

PyTorch CI fix prevents infinite queueing for OSDC l-* runners

A bug left empty runner prefixes causing jobs to queue forever on OSDC hardware.

Deep Dive

A recently merged pull request (PR #188207) in the PyTorch repository addresses a critical CI queuing issue affecting OSDC (Open Source Developer Cloud) l-* runners. The bug originated from the `no-runner-experiments` tag, which empties the runner prefix. While this was previously safe when prefixes served as fleet selectors over shared labels, ARC (Actions Runner Controller) now remaps to OSDC-only names (e.g., `linux.2xlarge` -> `l-x86iavx512-8-64`) with no bare equivalent. Consequently, an empty prefix produced unschedulable `l-*` labels that queued forever, wasting compute resources and blocking CI pipelines.

The fix makes the OSDC prefix mandatory for all `l-*` runners. When an empty prefix is provided, it now defaults to `mt-` in the `map_ec2_to_arc.py` script (passthrough rocm/xpu remain bare). This change is applied at three sites that build `l-*` runners directly: `_docs.yml`, `_linux-build.yml`, and `trunk.yml`. A global `mt-` default was rejected because Windows, macOS, ROCm, XPU, and hosted runners have no `mt-` prefix. The fix was validated with 19 passing tests (including 2 new) and clean lintrunner output. The PR was authored with assistance from Claude Code.

Key Points
  • Bug caused by `no-runner-experiments` tag emptying runner prefix for OSDC l-* instances
  • Fix makes OSDC prefix mandatory for l-* runners, defaulting to `mt-` in mapping script
  • Changes applied to three site files; 19 tests pass and lintrunner is clean

Why It Matters

Ensures reliable CI for PyTorch, preventing wasted compute and unblocking developer workflows.

📬 Get the top 10 AI stories daily