Signed-off-by: Bugen Zhao <i@bugenzhao.com> Signed-off-by: Nick Hill <nickhill123@gmail.com> Co-authored-by: OpenAI Codex <codex@openai.com> Co-authored-by: Nick Hill <nickhill123@gmail.com>
69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
|
|
from multiprocessing import connection
|
|
from types import SimpleNamespace
|
|
|
|
import pytest
|
|
import zmq
|
|
|
|
from vllm.v1.engine.utils import (
|
|
CoreEngine,
|
|
CoreEngineLaunch,
|
|
EngineZmqAddresses,
|
|
wait_for_engine_startup,
|
|
)
|
|
|
|
pytestmark = pytest.mark.skip_global_cleanup
|
|
|
|
|
|
class _FinishedProcess:
|
|
name = "RustFrontend"
|
|
|
|
def __init__(self, sentinel):
|
|
self.sentinel = sentinel
|
|
|
|
@property
|
|
def exitcode(self):
|
|
return 1
|
|
|
|
|
|
def test_wait_for_engine_startup_reports_watched_process_exit():
|
|
ctx = zmq.Context()
|
|
handshake_socket = ctx.socket(zmq.ROUTER)
|
|
recv, send = connection.Pipe(duplex=False)
|
|
send.close()
|
|
|
|
parallel_config = SimpleNamespace(
|
|
data_parallel_size_local=1,
|
|
data_parallel_hybrid_lb=False,
|
|
data_parallel_external_lb=False,
|
|
)
|
|
|
|
try:
|
|
launch = CoreEngineLaunch(
|
|
engine_manager=None,
|
|
coordinator=None,
|
|
addresses=EngineZmqAddresses(inputs=[], outputs=[]),
|
|
tensor_queue=None,
|
|
)
|
|
launch.watched_frontend_processes = [_FinishedProcess(recv)]
|
|
with pytest.raises(RuntimeError) as exc_info:
|
|
wait_for_engine_startup(
|
|
handshake_socket,
|
|
[CoreEngine()],
|
|
parallel_config, # type: ignore[arg-type]
|
|
coordinated_dp=False,
|
|
cache_config=None, # type: ignore[arg-type]
|
|
launch=launch,
|
|
)
|
|
finally:
|
|
recv.close()
|
|
handshake_socket.close(linger=0)
|
|
ctx.term()
|
|
|
|
assert "Frontend process failed during engine core initialization" in str(
|
|
exc_info.value
|
|
)
|
|
assert "Failed frontend proc(s): {'RustFrontend': 1}" in str(exc_info.value)
|