Monkey patch uvicorn multi worker is_alive timeout (#10159)
Co-authored-by: Huang Long <121648372+llll114@users.noreply.github.com>
This commit is contained in:
@@ -93,6 +93,7 @@ from sglang.srt.managers.io_struct import (
|
||||
from sglang.srt.managers.multi_tokenizer_mixin import (
|
||||
MultiTokenizerManager,
|
||||
get_main_process_id,
|
||||
monkey_patch_uvicorn_multiprocessing,
|
||||
read_from_shared_memory,
|
||||
write_data_for_multi_tokenizer,
|
||||
)
|
||||
@@ -1219,6 +1220,9 @@ def launch_server(
|
||||
"level": "INFO",
|
||||
"propagate": False,
|
||||
}
|
||||
|
||||
monkey_patch_uvicorn_multiprocessing()
|
||||
|
||||
uvicorn.run(
|
||||
"sglang.srt.entrypoints.http_server:app",
|
||||
host=server_args.host,
|
||||
|
||||
@@ -19,6 +19,7 @@ import os
|
||||
import pickle
|
||||
import sys
|
||||
import threading
|
||||
from functools import partialmethod
|
||||
from multiprocessing import shared_memory
|
||||
from typing import Any, Dict
|
||||
|
||||
@@ -556,3 +557,17 @@ def write_data_for_multi_tokenizer(
|
||||
args_shm.close()
|
||||
|
||||
return args_shm
|
||||
|
||||
|
||||
def monkey_patch_uvicorn_multiprocessing(timeout: float = 10):
|
||||
"""Monkey patch uvicorn multiprocessing is_alive timeout"""
|
||||
# from default 5s -> 10s
|
||||
try:
|
||||
from uvicorn.supervisors.multiprocess import Process
|
||||
|
||||
Process.is_alive = partialmethod(Process.is_alive, timeout=timeout)
|
||||
|
||||
except ImportError:
|
||||
logger.warning(
|
||||
"uvicorn.supervisors.multiprocess not found, skipping monkey patch"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user