CI job build-test-cpu fails on every open pull request. Two tests are responsible, and they have different owners.
The following tests FAILED:
101 - test_qwen3_5_decode_graph_seam (SEGFAULT)
174 - test_nemotron_h_paged_forward (Failed)
Errors while running CTest
##[error]Process completed with exit code 8.
Observed on run 32289803793 job 96190957731, build-test-cpu, step Test, Total Test time (real) = 526.18 sec, and reproduced on the same job across #1348, #1081 and #1289.
The second one already has an owner
test_nemotron_h_paged_forward is #1371 — CPU has no attention backend once FLASH_ATTN declines a head size. PR #1392 fixes it and is in review. This issue is not about that test.
This issue is the SEGFAULT
test_qwen3_5_decode_graph_seam segfaults. A segfault is not an assertion failure: the process dies, so the harness reports no case counts, no Status: line and no assertion totals. Nothing downstream of the crash ran, and a reader who greps for Status: or assertions: finds neither and can mistake the silence for a skip.
tests/vllm/models/test_qwen3_5_decode_graph_seam.cpp was last touched by:
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)
3b76ccbfe — feat(ENG-CUDAGRAPH-BREAK): make the persistent step input a seam capability, and correct the record the token-id path never existed (#1307, #1163, #1319)
Both are on main, so this is very likely a main defect inherited by every branch rather than any PR's own regression. That is a hypothesis, not a finding: I could not confirm it from a main baseline, because every recent main CI run is completed/cancelled, superseded by the next push before it finished. There is currently no green or red verdict for main itself to subtract.
Establishing that baseline is the first task here, and it is the part that must not be skipped. Run the test at origin/main directly and record the result. If main is red, this is a main regression and the owning row is ENG-CUDAGRAPH-BREAK; if main is green, the cause is elsewhere and this issue needs re-scoping rather than closing.
Why it matters beyond itself
build-test-cpu red on every PR means no PR can be landed on a clean gate, and it trains readers to treat a red build-test-cpu as background noise — which is exactly how a real regression gets merged. Two of this repository's standing traps apply: a cancelled run reads as a failure and can leave a branch with no successor at all, and a crashed binary produces no counts, so its silence must never be read as a pass.
Notes for whoever takes this
- Get a stack. A segfault under
ctest gives nothing on its own; run the binary directly and under a debugger or ASan.
- The neighbouring seam tests (
test_qwen3_moe_decode_graph_seam, test_voxtral_decode_graph_seam, test_deepseek_v2_decode_graph_seam, test_breakable_graph) are the natural controls — do they also crash, or is this one specific?
- Do not "fix" it by deleting or disabling the case. A gate made green by removing the assertion is the failure this repository's policy names explicitly.
CI job
build-test-cpufails on every open pull request. Two tests are responsible, and they have different owners.Observed on run 32289803793 job
96190957731,build-test-cpu, stepTest,Total Test time (real) = 526.18 sec, and reproduced on the same job across #1348, #1081 and #1289.The second one already has an owner
test_nemotron_h_paged_forwardis #1371 — CPU has no attention backend once FLASH_ATTN declines a head size. PR #1392 fixes it and is in review. This issue is not about that test.This issue is the SEGFAULT
test_qwen3_5_decode_graph_seamsegfaults. A segfault is not an assertion failure: the process dies, so the harness reports no case counts, noStatus:line and no assertion totals. Nothing downstream of the crash ran, and a reader who greps forStatus:orassertions:finds neither and can mistake the silence for a skip.tests/vllm/models/test_qwen3_5_decode_graph_seam.cppwas last touched by: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)3b76ccbfe—feat(ENG-CUDAGRAPH-BREAK): make the persistent step input a seam capability, and correct the record the token-id path never existed (#1307, #1163, #1319)Both are on
main, so this is very likely amaindefect inherited by every branch rather than any PR's own regression. That is a hypothesis, not a finding: I could not confirm it from amainbaseline, because every recentmainCI run iscompleted/cancelled, superseded by the next push before it finished. There is currently no green or red verdict formainitself to subtract.Establishing that baseline is the first task here, and it is the part that must not be skipped. Run the test at
origin/maindirectly and record the result. Ifmainis red, this is amainregression and the owning row isENG-CUDAGRAPH-BREAK; ifmainis green, the cause is elsewhere and this issue needs re-scoping rather than closing.Why it matters beyond itself
build-test-cpured on every PR means no PR can be landed on a clean gate, and it trains readers to treat a redbuild-test-cpuas background noise — which is exactly how a real regression gets merged. Two of this repository's standing traps apply: a cancelled run reads as a failure and can leave a branch with no successor at all, and a crashed binary produces no counts, so its silence must never be read as a pass.Notes for whoever takes this
ctestgives nothing on its own; run the binary directly and under a debugger or ASan.test_qwen3_moe_decode_graph_seam,test_voxtral_decode_graph_seam,test_deepseek_v2_decode_graph_seam,test_breakable_graph) are the natural controls — do they also crash, or is this one specific?