[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: