From b74a12580022039fc15fb54c7066cc13fdc96220 Mon Sep 17 00:00:00 2001 From: youkaichao Date: Tue, 20 Aug 2024 17:41:12 -0700 Subject: [PATCH] [ci] try to log process using the port to debug the port usage (#7711) --- vllm/entrypoints/launcher.py | 7 +++++++ vllm/utils.py | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/vllm/entrypoints/launcher.py b/vllm/entrypoints/launcher.py index 8e97ae71..f4a9c61a 100644 --- a/vllm/entrypoints/launcher.py +++ b/vllm/entrypoints/launcher.py @@ -10,6 +10,7 @@ from vllm import envs from vllm.engine.async_llm_engine import AsyncEngineDeadError from vllm.engine.protocol import AsyncEngineClient from vllm.logger import init_logger +from vllm.utils import find_process_using_port logger = init_logger(__name__) @@ -48,6 +49,12 @@ async def serve_http(app: FastAPI, engine: AsyncEngineClient, await server_task return dummy_shutdown() except asyncio.CancelledError: + port = uvicorn_kwargs["port"] + process = find_process_using_port(port) + if process is not None: + logger.debug( + "port %s is used by process %s launched with command:\n%s", + port, process, " ".join(process.cmdline())) logger.info("Gracefully stopping http server") return server.shutdown() diff --git a/vllm/utils.py b/vllm/utils.py index 39fe7422..0b7457a7 100644 --- a/vllm/utils.py +++ b/vllm/utils.py @@ -547,6 +547,16 @@ def get_open_port() -> int: return s.getsockname()[1] +def find_process_using_port(port: int) -> Optional[psutil.Process]: + for conn in psutil.net_connections(): + if conn.laddr.port == port: + try: + return psutil.Process(conn.pid) + except psutil.NoSuchProcess: + return None + return None + + def update_environment_variables(envs: Dict[str, str]): for k, v in envs.items(): if k in os.environ and os.environ[k] != v: