From aca3ce6ba0b607a119e159a69f3c15b2d5d60057 Mon Sep 17 00:00:00 2001 From: Nick Hill Date: Tue, 22 Jul 2025 23:54:12 +0100 Subject: [PATCH] fix cross-node headless arg validation Signed-off-by: Nick Hill --- vllm/v1/engine/utils.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vllm/v1/engine/utils.py b/vllm/v1/engine/utils.py index 37baa04bfbed4..092b5b90bb570 100644 --- a/vllm/v1/engine/utils.py +++ b/vllm/v1/engine/utils.py @@ -690,6 +690,9 @@ def wait_for_engine_startup( poller = zmq.Poller() poller.register(handshake_socket, zmq.POLLIN) + remote_should_be_headless = not parallel_config.data_parallel_hybrid_lb \ + and not parallel_config.data_parallel_external_lb + if proc_manager is not None: for sentinel in proc_manager.sentinels(): poller.register(sentinel, zmq.POLLIN) @@ -733,15 +736,15 @@ def wait_for_engine_startup( f"{'local' if engine.local else 'remote'}") # Remote engines must be headless iff we aren't in hybrid dp lb mode. - if not local and headless == parallel_config.data_parallel_hybrid_lb: + if not local and headless != remote_should_be_headless: if headless: raise RuntimeError(f"Remote engine {eng_index} must not use " - f"--headless in --data-parallel-hybrid-lb " + f"--headless in external or hybrid dp lb " f"mode") else: raise RuntimeError(f"Remote engine {eng_index} must use " - f"--headless unless" - f"in --data-parallel-hybrid-lb mode") + f"--headless unless in external or hybrid " + f"dp lb mode") if status == "HELLO" and engine.state == CoreEngineState.NEW: