Skip to content

test_qwen3_5_decode_graph_seam SEGFAULTs in build-test-cpu, and build-test-cpu is red on every open PR #1422

Description

@localai-bot

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:

  • 5f68e60dffeat(ENG-CUDAGRAPH-BREAK): widen graph eligibility to the step's actual query length, and key the spec ring so it cannot collide (#1374, #1020)
  • 3b76ccbfefeat(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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions