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 threading
import time import time
import traceback import traceback
import uuid
from collections import defaultdict from collections import defaultdict
from http import HTTPStatus from http import HTTPStatus
from typing import Dict, List, Optional, Set, Tuple, Union 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. # No processor → can't functionally probe; liveness alone is healthy.
return None 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: try:
_, _, _, error_msg, error_code = await enc.encode( _, _, _, error_msg, error_code = await enc.encode(
mm_items=mm_items, mm_items=mm_items,
@@ -3757,7 +3759,8 @@ async def health_generate():
return Response(status_code=200) return Response(status_code=200)
try: 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 = { dummy_request = {
"mm_items": mm_items, "mm_items": mm_items,
+4 -1
View File
@@ -24,6 +24,7 @@ import os
import tempfile import tempfile
import threading import threading
import time import time
import uuid
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from http import HTTPStatus from http import HTTPStatus
from typing import ( from typing import (
@@ -607,7 +608,9 @@ async def health_generate(request: Request) -> Response:
return Response(status_code=200) return Response(status_code=200)
sampling_params = {"max_new_tokens": 1, "temperature": 0.0} 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: if _global_state.tokenizer_manager.is_generation:
gri = GenerateReqInput( gri = GenerateReqInput(