From edd8b5f923b07f1b9b52301589c4a891aa4263ab Mon Sep 17 00:00:00 2001 From: Sean Sheng Date: Tue, 30 Aug 2022 02:29:15 -0700 Subject: [PATCH 1/2] fix: log runner errors explicitly --- bentoml/_internal/server/runner_app.py | 33 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/bentoml/_internal/server/runner_app.py b/bentoml/_internal/server/runner_app.py index 9d7ddc7412..048aa12342 100644 --- a/bentoml/_internal/server/runner_app.py +++ b/bentoml/_internal/server/runner_app.py @@ -213,16 +213,27 @@ async def _run(request: Request) -> Response: params = pickle.loads(await request.body()) params = params.map(AutoContainer.from_payload) - ret = await runner_method.async_run(*params.args, **params.kwargs) - - payload = AutoContainer.to_payload(ret, 0) - return Response( - payload.data, - headers={ - PAYLOAD_META_HEADER: json.dumps(payload.meta), - "Content-Type": f"application/vnd.bentoml.{payload.container}", - "Server": f"BentoML-Runner/{self.runner.name}/{runner_method.name}/{self.worker_index}", - }, - ) + + try: + ret = await runner_method.async_run(*params.args, **params.kwargs) + except BaseException as exc: + logger.error(f"Exception on runner '{runner_method.runner.name}' method '{runner_method.name}'", exc_info=exc) + return Response( + status_code=500, + headers={ + "Content-Type": "text/plain", + "Server": f"BentoML-Runner/{self.runner.name}/{runner_method.name}/{self.worker_index}", + }, + ) + else: + payload = AutoContainer.to_payload(ret, 0) + return Response( + payload.data, + headers={ + PAYLOAD_META_HEADER: json.dumps(payload.meta), + "Content-Type": f"application/vnd.bentoml.{payload.container}", + "Server": f"BentoML-Runner/{self.runner.name}/{runner_method.name}/{self.worker_index}", + }, + ) return _run From 343d8b5c2bfc1ddee534f508ba39427da42e477f Mon Sep 17 00:00:00 2001 From: Sean Sheng Date: Tue, 30 Aug 2022 02:47:03 -0700 Subject: [PATCH 2/2] Update runner_app.py --- bentoml/_internal/server/runner_app.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bentoml/_internal/server/runner_app.py b/bentoml/_internal/server/runner_app.py index 048aa12342..f4cafc57f1 100644 --- a/bentoml/_internal/server/runner_app.py +++ b/bentoml/_internal/server/runner_app.py @@ -217,7 +217,10 @@ async def _run(request: Request) -> Response: try: ret = await runner_method.async_run(*params.args, **params.kwargs) except BaseException as exc: - logger.error(f"Exception on runner '{runner_method.runner.name}' method '{runner_method.name}'", exc_info=exc) + logger.error( + f"Exception on runner '{runner_method.runner.name}' method '{runner_method.name}'", + exc_info=exc, + ) return Response( status_code=500, headers={