Convert IPC dataclasses to msgspec.Struct with opt-in msgpack transport (#28688)
Co-authored-by: Lianmin Zheng <lianminzheng@gmail.com>
This commit is contained in:
co-authored by
Lianmin Zheng
parent
714011a40f
commit
be1930133a
@@ -12,7 +12,7 @@ import zmq
|
||||
|
||||
from sglang.srt.entrypoints.http_server import launch_server
|
||||
from sglang.srt.environ import envs
|
||||
from sglang.srt.managers.io_struct import sock_recv, sock_send
|
||||
from sglang.srt.managers.io_struct import sock_recv, sock_send, wrap_as_pickle
|
||||
from sglang.srt.server_args import ServerArgs
|
||||
from sglang.srt.utils.network import get_free_port, get_zmq_socket_on_host
|
||||
from sglang.test.scripted_runtime.io_struct import (
|
||||
@@ -90,7 +90,7 @@ class ScriptedHttpServer:
|
||||
raise RuntimeError(f"ScriptedHttpServer is dirty: {self._dirty}")
|
||||
|
||||
fn_path = f"{script_fn.__module__}:{script_fn.__qualname__}"
|
||||
sock_send(self._socket, RunScript(fn_path=fn_path, args=args))
|
||||
sock_send(self._socket, wrap_as_pickle(RunScript(fn_path=fn_path, args=args)))
|
||||
|
||||
if not self._socket.poll(int(timeout_s * 1000)):
|
||||
if not self._server_process.is_alive():
|
||||
@@ -117,7 +117,7 @@ class ScriptedHttpServer:
|
||||
fatal_error: Optional[OutOfBandError] = None
|
||||
try:
|
||||
try:
|
||||
sock_send(self._socket, Shutdown())
|
||||
sock_send(self._socket, wrap_as_pickle(Shutdown()))
|
||||
except zmq.ZMQError:
|
||||
pass
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from typing import TYPE_CHECKING, Generator, List, Optional, Tuple
|
||||
import zmq
|
||||
|
||||
from sglang.srt.environ import envs
|
||||
from sglang.srt.managers.io_struct import sock_recv, sock_send
|
||||
from sglang.srt.managers.io_struct import sock_recv, sock_send, wrap_as_pickle
|
||||
from sglang.srt.utils.network import get_zmq_socket
|
||||
from sglang.test.scripted_runtime.background_http_poster import BackgroundHttpPoster
|
||||
from sglang.test.scripted_runtime.context import ScriptedContext
|
||||
@@ -153,7 +153,7 @@ class ScriptedSchedulerHook:
|
||||
socket = get_zmq_socket(ctx_zmq, zmq.PAIR, endpoint, bind=False)
|
||||
try:
|
||||
yield from _drive_engine_through_warmup(self._context)
|
||||
sock_send(socket, HookReady())
|
||||
sock_send(socket, wrap_as_pickle(HookReady()))
|
||||
while True:
|
||||
msg = sock_recv(socket)
|
||||
match msg:
|
||||
@@ -170,10 +170,12 @@ class ScriptedSchedulerHook:
|
||||
except Exception:
|
||||
sock_send(
|
||||
socket,
|
||||
ScriptFailed(traceback=traceback.format_exc()),
|
||||
wrap_as_pickle(
|
||||
ScriptFailed(traceback=traceback.format_exc())
|
||||
),
|
||||
)
|
||||
else:
|
||||
sock_send(socket, ScriptSucceeded())
|
||||
sock_send(socket, wrap_as_pickle(ScriptSucceeded()))
|
||||
case _:
|
||||
raise ValueError(f"dispatch loop: unknown command {msg!r}")
|
||||
finally:
|
||||
|
||||
@@ -41,6 +41,11 @@ class ScriptedTokenizerRecvProxy:
|
||||
"ScriptedTokenizerRecvProxy.recv_pyobj: blocking recv is not supported"
|
||||
)
|
||||
|
||||
def recv(self, flags: int = 0) -> bytes:
|
||||
raise NotImplementedError(
|
||||
"TODO: support ScriptedTokenizerRecvProxy.recv for msgpack IPC"
|
||||
)
|
||||
|
||||
def wait_until_arrived(
|
||||
self,
|
||||
predicate: Callable[[Any], bool],
|
||||
|
||||
Reference in New Issue
Block a user