Bug
On 4-node TP=4 (GB10/sm_121a, aarch64), a v0.27.0 engine serves its first requests normally, then permanently stalls after roughly one minute of engine idleness. Requests after the gap never enter the scheduler (num_requests_running stays 0), the API keeps answering /v1/models and /tokenize, and the head's EngineCore logs repeat:
[shm_broadcast.py:802] No available shared memory broadcast block found in 60 seconds.
This typically happens when some processes are hanging or doing some time-consuming work
every 60s indefinitely. All four rank containers stay alive; all TP workers' last log lines are healthy post-warmup (graph capture complete). Only a full fleet restart recovers. Reproduced 3/3 boots. Keeping the API warm (/v1/models polling every 45s) does NOT prevent it; the stall follows engine-level idleness, not connection idleness.
Sequence, timestamped from one boot: warmup collectives complete across all ranks (so the broadcast queue works) → first 1-2 completions succeed (~1.3s each) → ~1-2 min idle → all subsequent requests hang forever.
Environment
Official vllm/vllm-openai:v0.27.0-aarch64 + two patches required to get this far on sm_121: DeepGEMM repinned to 2fd67329 (#51758) and the masked_mha_available fix (#51920). GLM-5.2 (GlmMoeDsaForCausalLM), TP=4 via --nnodes 4 --node-rank N, mp executor, FLASHINFER_MLA_SPARSE_SM120 + FLASH_ATTN MLA prefill, fp8_ds_mla KV, MTP k=2 spec decode, dual-rail RoCEv2, VLLM_USE_BREAKABLE_CUDAGRAPH=0 set. torch 2.13.0+cu130 bundled NCCL.
Related: #51758 validated v0.27.0 on 2x Spark (TP=2 and PP=2) with a 400-request soak and zero hangs — consistent with our result that the first requests DO work; the failure needs the multi-node idle gap, and possibly the 4-node width. This looks adjacent to the pre-0.27 TP-hang family that release fixed for 2-node.
Full per-rank logs, exact launch argv, and timings available; the cluster reproduces this in ~20 minutes per attempt and I can run instrumented builds or targeted env matrices on request.
Bug
On 4-node TP=4 (GB10/sm_121a, aarch64), a v0.27.0 engine serves its first requests normally, then permanently stalls after roughly one minute of engine idleness. Requests after the gap never enter the scheduler (
num_requests_runningstays 0), the API keeps answering/v1/modelsand/tokenize, and the head's EngineCore logs repeat:every 60s indefinitely. All four rank containers stay alive; all TP workers' last log lines are healthy post-warmup (graph capture complete). Only a full fleet restart recovers. Reproduced 3/3 boots. Keeping the API warm (
/v1/modelspolling every 45s) does NOT prevent it; the stall follows engine-level idleness, not connection idleness.Sequence, timestamped from one boot: warmup collectives complete across all ranks (so the broadcast queue works) → first 1-2 completions succeed (~1.3s each) → ~1-2 min idle → all subsequent requests hang forever.
Environment
Official
vllm/vllm-openai:v0.27.0-aarch64+ two patches required to get this far on sm_121: DeepGEMM repinned to2fd67329(#51758) and themasked_mha_availablefix (#51920). GLM-5.2 (GlmMoeDsaForCausalLM), TP=4 via--nnodes 4 --node-rank N, mp executor,FLASHINFER_MLA_SPARSE_SM120+ FLASH_ATTN MLA prefill,fp8_ds_mlaKV, MTP k=2 spec decode, dual-rail RoCEv2,VLLM_USE_BREAKABLE_CUDAGRAPH=0set. torch 2.13.0+cu130 bundled NCCL.Related: #51758 validated v0.27.0 on 2x Spark (TP=2 and PP=2) with a 400-request soak and zero hangs — consistent with our result that the first requests DO work; the failure needs the multi-node idle gap, and possibly the 4-node width. This looks adjacent to the pre-0.27 TP-hang family that release fixed for 2-node.
Full per-rank logs, exact launch argv, and timings available; the cluster reproduces this in ~20 minutes per attempt and I can run instrumented builds or targeted env matrices on request.