Add scheduled vLLM torch-nightly regression triage - #8444
Closed
atalman wants to merge 1 commit into
Closed
Conversation
vLLM's Buildkite pipeline runs 'Full CI run torch nightly' (TORCH_NIGHTLY=1) and 'Full CI run - nightly' from the same HEAD in the same cron slot, so the pair is a controlled A/B: a job failing in the former and passing in the latter is attributable to torch nightly with the vLLM variable held constant. Nobody was consuming that signal. Adds tools/torchci/vllm_torch_nightly_triage.py, which finds the newest such pair in ClickHouse, buckets every job into regressed / pre-existing / baseline-only, clusters the regressions by job-name family, and checks whether failures concentrate on one agent (which would indicate a sick host rather than a torch regression). Adds a workflow running it Tue/Wed/Fri after the nightly lands. When there are regressions it opens an issue with the report and an @claude mention, so root-cause analysis happens on demand via the existing .claude/skills/vllm-pytorch-ci-triage skill. ClickHouse stores job metadata only -- log contents are not ingested, just log_url pointers -- so this answers which jobs regressed, not why. Keeping the log-reading half on-demand means the cron needs no Buildkite token.
|
@atalman is attempting to deploy a commit to the Meta Open Source Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
vLLM's Buildkite pipeline runs three scheduled builds on
main, all from the sameHEAD:0 23 * * 1,2,4Full CI run torch nightlyTORCH_NIGHTLY=10 23 * * *Full CI run - nightly0 14 * * *Full CI run - dailyOn Mon/Tue/Thu the first two fire in the same second on the same commit, differing only by
TORCH_NIGHTLY=1. That is a controlled A/B — a job failing in the torch-nightly build and passing in its sibling is attributable to torch, with the vLLM variable held constant. Nothing was consuming that signal.What this adds
tools/torchci/vllm_torch_nightly_triage.py— finds the newest torch-nightly build with a same-commit baseline and:Excludes
soft_failed(non-blocking by design) andretried(superseded attempts, otherwise double-counted)..github/workflows/vllm-torch-nightly-triage.yml— runs it Tue/Wed/Fri at 12:00 UTC, after the nightly has had time to finish. When there are regressions it opens an issue with the report, ending in an@claudemention.Why the split
ClickHouse ingests job metadata only — the tables carry
log_urlpointers, no log bodies (confirmed: no log/error/message columns exist in thevllmdatabase). So this answers which jobs regressed, not why.Rather than give the cron a Buildkite token to fetch logs on every run, the issue ends with
@claude, which triggers the existingclaude-code.ymlonissues: opened. Root-cause analysis then runs on demand via the already-checked-in.claude/skills/vllm-pytorch-ci-triageskill, with the shortlist precomputed. Detection is automatic; the expensive half happens when someone cares.Test plan
Ran against live ClickHouse. Latest pair, #82454 vs #82455 at commit
50c51682a18c:The A/B earns its keep: on the previous pair (#82195/#82196) a naive "what failed in the torch-nightly build" view showed 57 failures, of which 21 fail identically on the baseline. Six
Distributed Compile*timeouts looked like a distributed-compile regression and are pre-existing — they would have been filed wrongly.Also verified: YAML parses, both
run:blocks passbash -n,ruffclean, and the no-pair path exits 0 without writing files or opening an issue.Known limitations
Multi-Modal Processor (CPU) 1-4collapses correctly, but the NixlConnector family (CrossLayer KV layout Distributed NixlConnector…,DP EP Distributed NixlConnector…,Distributed FlashInfer NixlConnector…) does not, because the distinguishing token is a prefix. Keyword clustering would fix it but risks merging unrelated jobs; left conservative deliberately.@claudewill not fire as-is._claude-code.ymlrequires the issue author beOWNER/MEMBER/COLLABORATORorpytorch-auto-revert[bot]. An issue opened bygithub-actions[bot]isNONE. Either add that bot to the allowlist (one line, precedent exists) or open the issue with an App token. Deliberately not changed here — it touches the shared security gate and should be a separate decision.ci: torch-nightlylabel needs creating, orgh issue createwill fail.