Skip to content

main is RED on build-test-cpu (test_qwen27_dense_forward), and main's own CI never reports because every run is CANCELLED #1285

Description

@localai-bot

Two defects, and the second is why the first went unnoticed.

1. main fails build-test-cpu

test_qwen27_dense_forward throws, 1 of 9 cases, on build-test-cpu, build-newest-gcc and both sanitize-cpu legs:

tests/vllm/models/test_qwen27_dense_forward.cpp:280: ERROR: test case THREW exception:
vt: qwen3_5 dense: `layer.linear_attn.in_proj_qkv.weight_scale_inv` is present, which is
the block-wise (fine-grained) FP8 scale, but the checkpoint`s quantization_config declares
no weight_block_size. The tensors and the config disagree and there is no block geometry
to read the scale with; refusing rather than guessing 128x128
  at src/vllm/model_executor/models/qwen3_5_dense_weights.cpp:428
[doctest] test cases: 9 | 8 passed | 1 failed | 0 skipped

The refusal itself looks correct — a fixture appears to present weight_scale_inv without a weight_block_size, and the loader is right to refuse rather than guess 128x128. What is wrong is that it fires in a test on main.

Attribution, not assumption: 4ee5f4a69 (fix(FIX-PROBE-CANNOT-SAY-NO), #1258/#1267) is the last commit to touch both qwen3_5_dense_weights.cpp and test_qwen27_dense_forward.cpp, and it is an ancestor of main. Preceding block-FP8 work: 281b4bc76 (#1189/#1256) and 09597106e (#1189).

How it surfaced: PR #1081 is records-only. git diff origin/main...HEAD --name-only | grep -cE "^(src|include|tests|scripts|CMakeLists)" returns 0 — it touches no build input at all, yet inherits this failure. A records PR cannot break a C++ test, so the failure is mains.

2. main CI never reports, so nobody sees it

Every recent main run is cancelled:

6e99e4540 cancelled   32b32bb14 cancelled   836c13c35 cancelled   45a4a71d3 cancelled

ci.ymls concurrency group cancels in-progress runs on push, and main is receiving pushes faster than a run completes (cuda-fat-build alone is 45-90 minutes). So mains own status is never established, and a red like this is only discovered when some unrelated PR inherits it.

That is the more expensive defect. It means main can be red for an unbounded time with no signal, and every PR author then has to prove the failure is not theirs — which costs a full investigation each time.

Worth considering: make the push-to-main lane non-cancellable (the schedule/workflow_dispatch events already keep their own partition through the event_name token), or add a periodic baseline run whose job is to answer "is main green right now". Either change is a CI-semantics change and owes its own spec and red-before per AGENTS.md.

Not fixed in flow

The repair belongs to the row that owns the block-wise FP8 loader path, and diagnosing whether the fixture or the loader is wrong needs that context. Filing rather than guessing at someone elses fixture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions