Row: -
A TEXT completion served through VllmServerMain against a synthetic DeepSeek-V4 GGUF fixture crashes on roughly half of runs, at one token as readily as at 260.
Two signatures were observed, both on the same harness:
- SIGSEGV in
InputBatch::add_request
- otherwise SIGSEGV in
gather_block_table
Observed 3 crashes in 6 runs while building the W5 serving gate for #2411. The IMAGE request path on the same harness reached ModelRegistry::Forward 8 times out of 8, so whatever this is, it is not the multimodal path.
It is reported rather than gated. The wave that found it removed the text case from its suite instead of asserting a behaviour it could not make deterministic — tests/vllm/entrypoints/openai/test_serve_deepseek_v4_mm.cpp therefore runs 2 cases with 1 skipped, and passes 8 of 8 for me at that shape. Asserting an unstable case would have made the suite a coin flip; leaving it unrecorded would have hidden a crash.
Two fixture conditions had to be pinned to get the load to happen at all, and they may be related or may be separate defects:
- A GGUF without
deepseek4.context_length resolves max_model_len = 0 and then SIGSEGVs, rather than refusing by name.
- Prefix caching must be disabled:
BlockPool::cache_full_blocks refuses this KV topology's block/hash-block pair.
What is NOT established: whether this reproduces on a real DeepSeek-V4 checkpoint, or only on the synthetic fixture; and whether it predates #2411 entirely. Nothing in W5 touches InputBatch or the block table, which is why this is filed separately from that row rather than as a regression against it. Establishing which of those two it is, is the first step, not the fix.
Row:
-A TEXT completion served through
VllmServerMainagainst a synthetic DeepSeek-V4 GGUF fixture crashes on roughly half of runs, at one token as readily as at 260.Two signatures were observed, both on the same harness:
InputBatch::add_requestgather_block_tableObserved 3 crashes in 6 runs while building the W5 serving gate for #2411. The IMAGE request path on the same harness reached
ModelRegistry::Forward8 times out of 8, so whatever this is, it is not the multimodal path.It is reported rather than gated. The wave that found it removed the text case from its suite instead of asserting a behaviour it could not make deterministic —
tests/vllm/entrypoints/openai/test_serve_deepseek_v4_mm.cpptherefore runs 2 cases with 1 skipped, and passes 8 of 8 for me at that shape. Asserting an unstable case would have made the suite a coin flip; leaving it unrecorded would have hidden a crash.Two fixture conditions had to be pinned to get the load to happen at all, and they may be related or may be separate defects:
deepseek4.context_lengthresolvesmax_model_len = 0and then SIGSEGVs, rather than refusing by name.BlockPool::cache_full_blocksrefuses this KV topology's block/hash-block pair.What is NOT established: whether this reproduces on a real DeepSeek-V4 checkpoint, or only on the synthetic fixture; and whether it predates #2411 entirely. Nothing in W5 touches
InputBatchor the block table, which is why this is filed separately from that row rather than as a regression against it. Establishing which of those two it is, is the first step, not the fix.