Found while running the operator gate for row ENG-EXPERT-STREAM-DEVICE (#1124, PR #1377). Filed in flow; it is not that row's defect.
What happens
test_qwen3_5_decode_graph_seam terminates with SIGSEGV. It is not a failed assertion, so no doctest output survives to name the case.
1/1 Test #101: test_qwen3_5_decode_graph_seam ...***Exception: SegFault 1.16 sec
0% tests passed, 1 tests failed out of 1
It is main's, and here is the control
I ran the branch and main in the SAME build directory with the SAME flags, changing only the checked-out source, so the toolchain, the configure and the object cache are held constant:
| Tree |
Result |
row/ENG-EXPERT-STREAM-DEVICE-W0 at a1869e482 |
SEGFAULT, 16.48 s |
origin/main at 96ed8346f |
SEGFAULT, 1.16 s |
Build of the control: rc 0, 0 error:/FAILED: lines, grep -c 'No space left on device' = 0. The branch does not touch tests/vllm/models/test_qwen3_5_decode_graph_seam.cpp.
The last commit to that test is 5f68e60df, feat(ENG-CUDAGRAPH-BREAK): widen graph eligibility to the step's actual query length, and key the spec ring so it cannot collide (#1374, #1020), which is on main. That is where to start, not a conclusion: I did not bisect, and the segfault may equally sit in the production code that commit widened the eligibility of.
Why it reached main
main's own CI never reports. Of the last 60 workflow runs in this repository, 30 are completed and every one of them is cancelled — zero success, zero failure — with the rest queued or pending. main's own runs are in that set. This is the condition #1285 already describes. A suite can therefore go red on main and no lane says so, which is how this one got here and how #1240 did before it.
Two secondary observations from the same run, recorded so they are not rediscovered:
test_engine_core_proc failed under ctest -j4 at load average 97 and passes serially. A load artifact, not a defect.
test_nemotron_h_paged_forward fails with No valid attention backend for device type 0 from {FLASH_ATTN: [head_size not supported]}. Its doctest summary reads assertions: 18 | 18 passed | 0 failed while 10 of 12 cases THREW — the assertions line cannot see a thrown case, so only the Status: FAILURE! line reports it. Whoever picks that up should grep Status:, not assertions:.
Reproduce
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j6 --target test_qwen3_5_decode_graph_seam
ctest --test-dir build -R '^test_qwen3_5_decode_graph_seam$' --output-on-failure
A first useful step is a debug build or ASan, since the release binary dies without naming a case. ASAN_OPTIONS plus the free-site line distinguishes a dangling temporary from a teardown race, which are the two shapes this tree has seen before.
Found while running the operator gate for row
ENG-EXPERT-STREAM-DEVICE(#1124, PR #1377). Filed in flow; it is not that row's defect.What happens
test_qwen3_5_decode_graph_seamterminates with SIGSEGV. It is not a failed assertion, so no doctest output survives to name the case.It is main's, and here is the control
I ran the branch and
mainin the SAME build directory with the SAME flags, changing only the checked-out source, so the toolchain, the configure and the object cache are held constant:row/ENG-EXPERT-STREAM-DEVICE-W0ata1869e482origin/mainat96ed8346fBuild of the control: rc 0, 0
error:/FAILED:lines,grep -c 'No space left on device'= 0. The branch does not touchtests/vllm/models/test_qwen3_5_decode_graph_seam.cpp.The last commit to that test is
5f68e60df,feat(ENG-CUDAGRAPH-BREAK): widen graph eligibility to the step's actual query length, and key the spec ring so it cannot collide (#1374, #1020), which is onmain. That is where to start, not a conclusion: I did not bisect, and the segfault may equally sit in the production code that commit widened the eligibility of.Why it reached main
main's own CI never reports. Of the last 60 workflow runs in this repository, 30 arecompletedand every one of them iscancelled— zerosuccess, zerofailure— with the restqueuedorpending.main's own runs are in that set. This is the condition #1285 already describes. A suite can therefore go red onmainand no lane says so, which is how this one got here and how #1240 did before it.Two secondary observations from the same run, recorded so they are not rediscovered:
test_engine_core_procfailed underctest -j4at load average 97 and passes serially. A load artifact, not a defect.test_nemotron_h_paged_forwardfails withNo valid attention backend for device type 0 from {FLASH_ATTN: [head_size not supported]}. Its doctest summary readsassertions: 18 | 18 passed | 0 failedwhile 10 of 12 cases THREW — the assertions line cannot see a thrown case, so only theStatus: FAILURE!line reports it. Whoever picks that up should grepStatus:, notassertions:.Reproduce
A first useful step is a debug build or ASan, since the release binary dies without naming a case.
ASAN_OPTIONSplus the free-site line distinguishes a dangling temporary from a teardown race, which are the two shapes this tree has seen before.