A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 7, 02:45 UTC
[Core] Fix benign error log during normal shutdown (#36270)
Signed-off-by: Nick Hill <nickhill123@gmail.com> Co-authored-by: Mark McLoughlin <markmc@redhat.com>
Nick Hill committed
Mar 6, 2026 at 16:39 UTC
6a18d8789be899a3ca4a07a55bf3383050493d35
1 file changed
+6
-9
vllm/v1/engine/core_client.py
+6
-9
@@ -567,10 +567,7 @@ class MPClient(EngineCoreClient):
567
)
568
569
with launch_core_engines(
570
- vllm_config,
571
- executor_class,
572
- log_stats,
573
- addresses,
570
+ vllm_config, executor_class, log_stats, addresses
571
) as (engine_manager, coordinator, addresses):
572
self.resources.coordinator = coordinator
573
self.resources.engine_manager = engine_manager
@@ -638,10 +635,10 @@ class MPClient(EngineCoreClient):
635
636
def shutdown(self, timeout: float | None = None) -> None:
637
"""Shutdown engine manager under timeout and clean up resources."""
641
- self._finalizer.detach()
642
- if self.resources.engine_manager is not None:
643
- self.resources.engine_manager.shutdown(timeout=timeout)
644
- self.resources()
638
+ if self._finalizer.detach() is not None:
639
+ if self.resources.engine_manager is not None:
640
+ self.resources.engine_manager.shutdown(timeout=timeout)
641
+ self.resources()
642
643
def _format_exception(self, e: Exception) -> Exception:
644
"""If errored, use EngineDeadError so root cause is clear."""
@@ -685,7 +682,7 @@ class MPClient(EngineCoreClient):
682
sentinels = [proc.sentinel for proc in engine_processes]
683
died = multiprocessing.connection.wait(sentinels)
684
_self = self_ref()
688
- if not _self or _self.resources.engine_dead:
685
+ if not _self or not _self._finalizer.alive or _self.resources.engine_dead:
686
return
687
_self.resources.engine_dead = True
688
proc_name = next(