Unverified Commit 27cd36e6 authored by Gene Der Su's avatar Gene Der Su Committed by GitHub
Browse files

[Bugfix] PicklingError on RayTaskError (#9934)


Signed-off-by: default avatarGene Su <e870252314@gmail.com>
parent 18bd7587
......@@ -5,6 +5,7 @@ from typing import Iterator, List, Optional, Union
import cloudpickle
import zmq
from ray.exceptions import RayTaskError
from vllm import AsyncEngineArgs, SamplingParams
# yapf conflicts with isort for this block
......@@ -305,6 +306,11 @@ class MQLLMEngine:
def _send_outputs(self, outputs: REQUEST_OUTPUTS_T):
"""Send List of RequestOutput to RPCClient."""
if outputs:
# RayTaskError might not pickelable here. We need to unpack the
# underlying exception as the real exception in the output.
if (isinstance(outputs, RPCError)
and isinstance(outputs.exception, RayTaskError)):
outputs.exception = outputs.exception.cause
output_bytes = pickle.dumps(outputs)
self.output_socket.send_multipart((output_bytes, ), copy=False)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment