Skip to content

[Bug] v0.27.0 engine permanently stalls after ~1 min idle on 4-node TP=4 (GB10/sm_121, aarch64): shm_broadcast writer starves, requests never reach scheduler #51921

Description

@joesinvestments

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions