[graceful shutdown] fix http server start firstly before app signal handler register (#49668)

Signed-off-by: Andy Xie <andy.xning@gmail.com>

Ning Xie committed Aug 1, 2026 at 04:51 UTC 0c4dc7c488754e6c895ff785b86b76b9c26923c4
1 file changed +12
vllm/entrypoints/launcher.py
+12
@@ -92,6 +92,18 @@ async def serve_http(
92 )
93 )
94
95 + # make sure uvicorn server signal handler has been registered.
96 + # Otherwise the app signal handler below will be overwritten in server.serve.
97 + # server.started is set to True after server complete server.startup.
98 + # We need to constraint the time sequence.
99 + logger.info("API server: waiting for HTTP server to start")
100 + while not server.started and not server_task.done():
101 + await asyncio.sleep(0.1)
102 + if server_task.done():
103 + # Propagate startup failure (e.g. port bind error) instead of hanging.
104 + await server_task
105 + logger.info("API server: HTTP server started")
106 +
107 shutdown_event = asyncio.Event()
108
109 def signal_handler() -> None: