fix(health): make health-check rid unique across tokenizer workers (#28143)

This commit is contained in:
ybyang
2026-06-14 00:01:52 -07:00
committed by GitHub
parent f79a6b5c33
commit 50993554d8
2 changed files with 9 additions and 3 deletions
@@ -11,6 +11,7 @@ import pickle
import threading
import time
import traceback
import uuid
from collections import defaultdict
from http import HTTPStatus
from typing import Dict, List, Optional, Set, Tuple, Union
@@ -2550,7 +2551,8 @@ async def _dp_worker_health_encode(enc: MMEncoder) -> None:
# No processor → can't functionally probe; liveness alone is healthy.
return None
req_id = f"{HEALTH_CHECK_RID_PREFIX}_{time.time()}"
# uuid keeps rids unique across workers; a bare time.time() can collide.
req_id = f"{HEALTH_CHECK_RID_PREFIX}_{uuid.uuid4().hex}"
try:
_, _, _, error_msg, error_code = await enc.encode(
mm_items=mm_items,
@@ -3757,7 +3759,8 @@ async def health_generate():
return Response(status_code=200)
try:
req_id = f"{HEALTH_CHECK_RID_PREFIX}_{time.time()}"
# uuid keeps rids unique across workers; a bare time.time() can collide.
req_id = f"{HEALTH_CHECK_RID_PREFIX}_{uuid.uuid4().hex}"
dummy_request = {
"mm_items": mm_items,
+4 -1
View File
@@ -24,6 +24,7 @@ import os
import tempfile
import threading
import time
import uuid
from contextlib import asynccontextmanager
from http import HTTPStatus
from typing import (
@@ -607,7 +608,9 @@ async def health_generate(request: Request) -> Response:
return Response(status_code=200)
sampling_params = {"max_new_tokens": 1, "temperature": 0.0}
rid = f"{HEALTH_CHECK_RID_PREFIX}_{time.time()}"
# uuid keeps rids unique across tokenizer workers (a bare time.time() can
# collide and crash the shared DetokenizerManager decode_status).
rid = f"{HEALTH_CHECK_RID_PREFIX}_{uuid.uuid4().hex}"
if _global_state.tokenizer_manager.is_generation:
gri = GenerateReqInput(