From 16e3f62fb8449a1c84d9db1f537e5ac483fefba3 Mon Sep 17 00:00:00 2001 From: Yongtao Huang Date: Wed, 3 Dec 2025 17:03:01 +0800 Subject: [PATCH] Fix LLMEngine.del dp_group cleanup condition `LLMEngine.__del__` previously used the walrus operator together with `and`, which caused `dp_group` to be assigned the result of the boolean expression instead of the actual DP group object due to operator precedence. As a result, `stateless_destroy_torch_distributed_process_group` could receive `True`/`False` instead of a process group instance. Signed-off-by: Yongtao Huang --- vllm/v1/engine/llm_engine.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/vllm/v1/engine/llm_engine.py b/vllm/v1/engine/llm_engine.py index d21cdf04ead2..8772f2e488dc 100644 --- a/vllm/v1/engine/llm_engine.py +++ b/vllm/v1/engine/llm_engine.py @@ -409,8 +409,6 @@ def apply_model(self, func: Callable[[nn.Module], _R]) -> list[_R]: return self.collective_rpc("apply_model", args=(func,)) def __del__(self): - if ( - dp_group := getattr(self, "dp_group", None) - and not self.external_launcher_dp - ): + dp_group = getattr(self, "dp_group", None) + if dp_group is not None and not self.external_launcher_dp: stateless_destroy_torch_distributed_process_group(dp_group)