fix: populate batch req rids and per-request http_worker_ipc for mult… (#29882)

This commit is contained in:
ybyang
2026-07-04 12:09:41 -07:00
committed by GitHub
parent 854b46be99
commit 63c4996fef
3 changed files with 48 additions and 2 deletions
+5
View File
@@ -86,6 +86,9 @@ class BaseBatchReq(msgspec.Struct, tag=True, kw_only=True, array_like=True):
"""Base for batched IPC payloads."""
rids: Optional[List[str]] = None
# Used by batch messages whose items are parallel arrays, such as scheduler
# outputs. Tokenized input batches store routing on batch[i].http_worker_ipc
# because the scheduler unpacks them into single-request handlers.
http_worker_ipcs: Optional[List[Optional[str]]] = None
@classmethod
@@ -881,6 +884,7 @@ class TokenizedGenerateReqInput(BaseReq, kw_only=True):
class BatchTokenizedGenerateReqInput(BaseBatchReq, kw_only=True):
# The batch of tokenized requests
# Routing for request i is batch[i].http_worker_ipc, not http_worker_ipcs[i].
batch: List[TokenizedGenerateReqInput]
def __len__(self):
@@ -1166,6 +1170,7 @@ class TokenizedEmbeddingReqInput(BaseReq, kw_only=True):
class BatchTokenizedEmbeddingReqInput(BaseBatchReq, kw_only=True):
# The batch of tokenized embedding requests
# Routing for request i is batch[i].http_worker_ipc, not http_worker_ipcs[i].
batch: List[TokenizedEmbeddingReqInput]
def __len__(self):
@@ -3153,5 +3153,10 @@ class SignalHandler:
def stamp_http_worker_ipc(obj: Any, ipc_name: str) -> None:
if isinstance(obj, BaseReq):
obj.http_worker_ipc = ipc_name
elif isinstance(
obj, (BatchTokenizedGenerateReqInput, BatchTokenizedEmbeddingReqInput)
):
for req in obj:
req.http_worker_ipc = ipc_name
elif isinstance(obj, BaseBatchReq):
obj.http_worker_ipcs = [ipc_name] * len(obj.rids)