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 (
|
from sglang.srt.managers.multi_tokenizer_mixin import (
|
||||||
MultiTokenizerManager,
|
MultiTokenizerManager,
|
||||||
get_main_process_id,
|
get_main_process_id,
|
||||||
|
monkey_patch_uvicorn_multiprocessing,
|
||||||
read_from_shared_memory,
|
read_from_shared_memory,
|
||||||
write_data_for_multi_tokenizer,
|
write_data_for_multi_tokenizer,
|
||||||
)
|
)
|
||||||
@@ -1219,6 +1220,9 @@ def launch_server(
|
|||||||
"level": "INFO",
|
"level": "INFO",
|
||||||
"propagate": False,
|
"propagate": False,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
monkey_patch_uvicorn_multiprocessing()
|
||||||
|
|
||||||
uvicorn.run(
|
uvicorn.run(
|
||||||
"sglang.srt.entrypoints.http_server:app",
|
"sglang.srt.entrypoints.http_server:app",
|
||||||
host=server_args.host,
|
host=server_args.host,
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import os
|
|||||||
import pickle
|
import pickle
|
||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
|
from functools import partialmethod
|
||||||
from multiprocessing import shared_memory
|
from multiprocessing import shared_memory
|
||||||
from typing import Any, Dict
|
from typing import Any, Dict
|
||||||
|
|
||||||
@@ -556,3 +557,17 @@ def write_data_for_multi_tokenizer(
|
|||||||
args_shm.close()
|
args_shm.close()
|
||||||
|
|
||||||
return args_shm
|
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