|
1 | 1 | # Repo Routing Cheat-Sheet |
2 | 2 |
|
3 | | -Match exception patterns to repo. When multiple patterns match, prefer |
4 | | -the more specific one. |
| 3 | +Match exception patterns to a repo. When multiple patterns match, prefer the more |
| 4 | +specific one. |
5 | 5 |
|
6 | | -If no pattern exists, give your best guess based on your repo knowledge. |
| 6 | +The **Routing** column is always exactly one of the three canonical values, matching |
| 7 | +the `routing` field the triage workflow emits: |
7 | 8 |
|
| 9 | + "pytorch/pytorch" | "vllm-project/vllm" | "infra" |
8 | 10 |
|
9 | | -| Error pattern | Repo | |
10 | | -|---|---| |
11 | | -| **Import errors — route by source package** | | |
12 | | -| `ImportError` / `ModuleNotFoundError` from `torch.*` or `torch._inductor.*` | pytorch/pytorch | |
13 | | -| `ImportError` / `ModuleNotFoundError` from `triton.*` | pytorch/pytorch (triton) | |
14 | | -| `ImportError` / `ModuleNotFoundError` from `vllm.*` | vllm-project/vllm | |
15 | | -| Import errors wrapped inside `RuntimeError: Engine core initialization failed` — unwrap to find the real `ImportError` underneath before routing | *(use rules above)* | |
16 | | -| `torch.library.Library.impl ... already a kernel registered` | pytorch/pytorch | |
17 | | -| `MetaProxy` in `prims.*` / Inductor | pytorch/pytorch | |
18 | | -| `PassManager::run failed` inside `triton/` frames | pytorch/pytorch (triton) | |
19 | | -| `Pointer argument cannot be accessed from Triton` | pytorch/pytorch (triton) | |
20 | | -| `Cannot access data pointer of Tensor (FakeTensor…)` | pytorch/pytorch (AOTAutograd) | |
21 | | -| `_pickle.PicklingError` on triton `launcher` | pytorch/pytorch (triton + AOT cache) | |
22 | | -| `warm_artifacts_saved: got 0`, `KeyError: None` in standalone_compile | pytorch/pytorch (Inductor cache) | |
23 | | -| `assert 'no' == 'yes'` in `test_dynamic_shapes_compilation` | pytorch/pytorch (Dynamo), but rerun first if GPU was OOM | |
24 | | -| `torch.compile with fullgraph=True found no compiled frames` (when `TORCH_COMPILE_DISABLE=1` is in env) | vLLM-side fix usually correct; upstream interest if behavior change is intentional | |
25 | | -| `RayChannelTimeoutError` on tp≥2 ray | pytorch/pytorch — likely torch.compile per-worker latency exceeds Ray channel timeout | |
26 | | -| `Nondeterministic outputs detected` (B200-only) | pytorch/pytorch — Blackwell-specific kernel drift | |
27 | | -| `assert torch.allclose(golden_output, vllm_output)` reward/PRM | pytorch/pytorch — numerical drift from triton update | |
28 | | -| `compare_two_settings(... cpu-offload-gb ...)` → "Results are not the same" | pytorch/pytorch (CPU↔GPU dequantize parity) | |
29 | | -| GSM8K accuracy collapses to 0.000 (not just degrades) | pytorch/pytorch — likely worker-side crash hidden behind unpickle error | |
30 | | -| `Generated text "X" doesn't match expected pattern "Y"` on Qwen2-VL / Qwen3-VL LoRA | pytorch/pytorch — multimodal LoRA path numerical drift | |
31 | | -| `AssertionError: expected size N==N, stride A==B` + `torch.ops.vllm.<X>` + "incorrect fake kernel" | **vllm-project/vllm** — fake kernel returns wrong shape | |
32 | | -| Multi-modal per-model assertions (qwen2_vl, chameleon) | vllm-project/vllm first — may be torch-side once isolated | |
33 | | -| Responses API assertion (`'incomplete' == 'completed'`) | vllm-project/vllm | |
34 | | -| `test_lm_eval_accuracy_v1_engine` — measured below threshold | investigate both — often numerical drift from triton update | |
35 | | -| `ValueError: Free memory on device cuda:N (X/Y GiB) … less than desired` (tagged `test_is_infra`) | infra (GPU contention) — rerun the job, do not file; can cascade dozens of unrelated tests, so the real failures may be a subset | |
36 | | -| CUDA OOM (`torch.OutOfMemoryError` / `CUDA out of memory`) in tp≥2 or B200 fusion tests (runner had ~4–5 GiB free at start) | infra likely — **not** tagged `test_is_infra` (runtime OOM ≠ startup free-memory check); cross-check the same job on the same-day main build. If main OOMs the same way, it's contention — skip filing | |
| 11 | +The **Notes** column carries the subsystem/area and any caveats — it is context for |
| 12 | +the write-up, never a routing value. If no pattern matches, give your best guess from |
| 13 | +your repo knowledge, still using one of the three values. |
| 14 | + |
| 15 | + |
| 16 | +| Error pattern | Routing | Notes | |
| 17 | +|---|---|---| |
| 18 | +| **Import errors — route by source package** | | | |
| 19 | +| `ImportError` / `ModuleNotFoundError` from `torch.*` or `torch._inductor.*` | pytorch/pytorch | | |
| 20 | +| `ImportError` / `ModuleNotFoundError` from `triton.*` | pytorch/pytorch | triton | |
| 21 | +| `ImportError` / `ModuleNotFoundError` from `vllm.*` | vllm-project/vllm | | |
| 22 | +| Import errors wrapped inside `RuntimeError: Engine core initialization failed` | *(re-route)* | Unwrap to the real `ImportError` underneath, then apply the import rules above | |
| 23 | +| `torch.library.Library.impl ... already a kernel registered` | pytorch/pytorch | | |
| 24 | +| `MetaProxy` in `prims.*` / Inductor | pytorch/pytorch | Inductor | |
| 25 | +| `PassManager::run failed` inside `triton/` frames | pytorch/pytorch | triton | |
| 26 | +| `Pointer argument cannot be accessed from Triton` | pytorch/pytorch | triton | |
| 27 | +| `Cannot access data pointer of Tensor (FakeTensor…)` | pytorch/pytorch | AOTAutograd | |
| 28 | +| `_pickle.PicklingError` on triton `launcher` | pytorch/pytorch | triton + AOT cache | |
| 29 | +| `warm_artifacts_saved: got 0`, `KeyError: None` in standalone_compile | pytorch/pytorch | Inductor cache | |
| 30 | +| `assert 'no' == 'yes'` in `test_dynamic_shapes_compilation` | pytorch/pytorch | Dynamo — but rerun first if GPU was OOM | |
| 31 | +| `torch.compile with fullgraph=True found no compiled frames` (when `TORCH_COMPILE_DISABLE=1` is in env) | vllm-project/vllm | vLLM-side fix usually correct; upstream interest only if the behavior change is intentional | |
| 32 | +| `RayChannelTimeoutError` on tp≥2 ray | pytorch/pytorch | Likely torch.compile per-worker latency exceeds Ray channel timeout | |
| 33 | +| `Nondeterministic outputs detected` (B200-only) | pytorch/pytorch | Blackwell-specific kernel drift | |
| 34 | +| `assert torch.allclose(golden_output, vllm_output)` reward/PRM | pytorch/pytorch | Numerical drift from triton update | |
| 35 | +| `compare_two_settings(... cpu-offload-gb ...)` → "Results are not the same" | pytorch/pytorch | CPU↔GPU dequantize parity | |
| 36 | +| GSM8K accuracy collapses to 0.000 (not just degrades) | pytorch/pytorch | Likely worker-side crash hidden behind unpickle error | |
| 37 | +| `Generated text "X" doesn't match expected pattern "Y"` on Qwen2-VL / Qwen3-VL LoRA | pytorch/pytorch | Multimodal LoRA path numerical drift | |
| 38 | +| `AssertionError: expected size N==N, stride A==B` + `torch.ops.vllm.<X>` + "incorrect fake kernel" | vllm-project/vllm | Fake kernel returns wrong shape | |
| 39 | +| Multi-modal per-model assertions (qwen2_vl, chameleon) | vllm-project/vllm | Check vLLM first — may be torch-side once isolated | |
| 40 | +| Responses API assertion (`'incomplete' == 'completed'`) | vllm-project/vllm | | |
| 41 | +| `test_lm_eval_accuracy_v1_engine` — measured below threshold | pytorch/pytorch | Often numerical drift from a triton update, but confirm against vLLM before filing — this one can land either side | |
| 42 | +| `ValueError: Free memory on device cuda:N (X/Y GiB) … less than desired` (tagged `test_is_infra`) | infra | GPU contention — rerun the job, do not file; can cascade dozens of unrelated tests, so the real failures may be a subset | |
| 43 | +| CUDA OOM (`torch.OutOfMemoryError` / `CUDA out of memory`) in tp≥2 or B200 fusion tests (runner had ~4–5 GiB free at start) | infra | **Not** tagged `test_is_infra` (runtime OOM ≠ startup free-memory check); cross-check the same job on the same-day main build. If main OOMs the same way, it's contention — skip filing | |
0 commit comments