File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed
src/vllm_tgis_adapter/grpc Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change 14
14
from grpc_health .v1 import health , health_pb2 , health_pb2_grpc
15
15
from grpc_reflection .v1alpha import reflection
16
16
from vllm .engine .async_llm_engine import AsyncLLMEngine
17
+ from vllm .engine .multiprocessing import MQEngineDeadError
17
18
from vllm .entrypoints .openai .serving_completion import merge_async_iterators
18
19
from vllm .inputs import LLMInputs
19
20
from vllm .sampling_params import RequestOutputKind , SamplingParams
@@ -149,6 +150,9 @@ async def _handle_exception(
149
150
service_metrics .count_request_failure (FailureReasonLabel .GENERATE )
150
151
else :
151
152
service_metrics .count_request_failure (FailureReasonLabel .UNKNOWN )
153
+ if isinstance (e , MQEngineDeadError ):
154
+ logger .error (e )
155
+ return
152
156
logger .exception ("%s failed" , func .__name__ )
153
157
raise e
154
158
Original file line number Diff line number Diff line change
1
+ import asyncio
2
+
1
3
import pytest
2
4
3
5
from .utils import GrpcClient
@@ -90,3 +92,34 @@ def test_request_id(grpc_client, mocker):
90
92
91
93
spy .assert_called_once ()
92
94
assert spy .spy_return == request_id .hex
95
+
96
+
97
+ def test_error_handling (mocker ):
98
+ from vllm .engine .multiprocessing import MQEngineDeadError
99
+
100
+ from vllm_tgis_adapter .grpc .grpc_server import _handle_exception , logger
101
+
102
+ def dummy_func ():
103
+ pass
104
+
105
+ class DummyEngine :
106
+ errored = False
107
+ is_running = True
108
+
109
+ class DummyArg :
110
+ engine = DummyEngine ()
111
+
112
+ # General error handling
113
+ key_error = KeyError ()
114
+ dummy_arg_0 = DummyArg ()
115
+ with pytest .raises (KeyError ):
116
+ asyncio .run (_handle_exception (key_error , dummy_func , dummy_arg_0 ))
117
+
118
+ engine_error = MQEngineDeadError ("foo:bar" )
119
+
120
+ # Engine error handling
121
+ spy = mocker .spy (logger , "error" )
122
+
123
+ # Does not raises exception
124
+ asyncio .run (_handle_exception (engine_error , dummy_func , dummy_arg_0 ))
125
+ spy .assert_called_once_with (engine_error )
You can’t perform that action at this time.
0 commit comments