Two findings, and the second is why nobody has noticed the first.
1. Five tests fail under ASan/UBSan
From the sanitize-cpu (address,undefined) job on
PR #259
(run),
99% tests passed, 5 tests failed out of 366:
9 - test_load_direct_upload (Failed)
43 - test_llama_embedding_fold (Failed)
58 - test_laguna_nvfp4_loader (Failed)
233 - test_openai_api_server (Failed)
237 - test_capi (Failed)
Not starvation: the run completed in 390 s with the other 361 passing in ~0.27 s
each, and it has now reproduced on two consecutive runs of that PR.
Not caused by that PR. Its entire diff is records/docs plus two test files
plus six comment-only lines in src/vllm/v1/engine/logprobs.cpp — the object
file is byte-identical to main's (md5 verified while the PR was being prepared),
so libvllm.a is bit-identical. A comment change cannot break a loader test, an
embedding fold, an NVFP4 loader or the C API. These are pre-existing on main.
test_capi is independently corroborated: a heap-corruption failure there was
already observed during the Jetson Thor sm_110 bring-up.
2. main's own CI never completes, so this was never going to be caught
Every recent main run is cancelled:
31395680680 ci completed/cancelled
31394968996 ci completed/cancelled
31394705099 ci completed/cancelled
31394011582 ci completed/cancelled
31393661001 ci completed/cancelled
31393588909 ci completed/cancelled
31393519175 ci completed/cancelled
31389045693 ci completed/cancelled
Merges land faster than a CI run takes, and each push cancels the in-flight run
for its concurrency group. The sanitizer job is ~27 minutes, so it is
structurally the least likely job to ever finish on main. The practical effect
is that main is not verified by its own CI — regressions are only visible
on PR branches, where they read as "someone else's problem" and get waved through
as flakes.
This also makes PR review harder in a specific way: with no green main
baseline, a contributor who sees sanitize-cpu red cannot tell whether they
caused it, and the cheap move is to assume they did not.
Suggested split
Worth treating as two pieces of work: triage the five sanitizer failures (each
likely its own root cause), and decide what a verified main should mean —
e.g. a post-merge run that is not cancellable, or a scheduled full run on a
quiet cadence, so there is a known-good baseline to diff against.
Found while holding #259 for a red sanitize-cpu rather than assuming it was
noise.
Two findings, and the second is why nobody has noticed the first.
1. Five tests fail under ASan/UBSan
From the
sanitize-cpu (address,undefined)job onPR #259
(run),
99% tests passed, 5 tests failed out of 366:Not starvation: the run completed in 390 s with the other 361 passing in ~0.27 s
each, and it has now reproduced on two consecutive runs of that PR.
Not caused by that PR. Its entire diff is records/docs plus two test files
plus six comment-only lines in
src/vllm/v1/engine/logprobs.cpp— the objectfile is byte-identical to main's (md5 verified while the PR was being prepared),
so
libvllm.ais bit-identical. A comment change cannot break a loader test, anembedding fold, an NVFP4 loader or the C API. These are pre-existing on
main.test_capiis independently corroborated: a heap-corruption failure there wasalready observed during the Jetson Thor sm_110 bring-up.
2.
main's own CI never completes, so this was never going to be caughtEvery recent
mainrun iscancelled:Merges land faster than a CI run takes, and each push cancels the in-flight run
for its concurrency group. The sanitizer job is ~27 minutes, so it is
structurally the least likely job to ever finish on
main. The practical effectis that
mainis not verified by its own CI — regressions are only visibleon PR branches, where they read as "someone else's problem" and get waved through
as flakes.
This also makes PR review harder in a specific way: with no green
mainbaseline, a contributor who sees
sanitize-cpured cannot tell whether theycaused it, and the cheap move is to assume they did not.
Suggested split
Worth treating as two pieces of work: triage the five sanitizer failures (each
likely its own root cause), and decide what a verified
mainshould mean —e.g. a post-merge run that is not cancellable, or a scheduled full run on a
quiet cadence, so there is a known-good baseline to diff against.
Found while holding #259 for a red
sanitize-cpurather than assuming it wasnoise.