fix(health): make health-check rid unique across tokenizer workers (#28143)
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user