From f668bd0ef1c82c60e59752b50fcec3be6490e5ca Mon Sep 17 00:00:00 2001 From: zhengd-nv <200704041+zhengd-nv@users.noreply.github.com> Date: Fri, 4 Jul 2025 05:53:15 +0000 Subject: [PATCH] log stack trace on error Signed-off-by: zhengd-nv <200704041+zhengd-nv@users.noreply.github.com> --- tensorrt_llm/serve/openai_disagg_server.py | 5 +++-- tensorrt_llm/serve/openai_server.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tensorrt_llm/serve/openai_disagg_server.py b/tensorrt_llm/serve/openai_disagg_server.py index 62a64a1cd73..6eb05971b60 100644 --- a/tensorrt_llm/serve/openai_disagg_server.py +++ b/tensorrt_llm/serve/openai_disagg_server.py @@ -3,6 +3,7 @@ import copy import os import signal +import traceback from contextlib import asynccontextmanager from http import HTTPStatus from typing import List, Optional, Type, Union @@ -168,12 +169,12 @@ async def openai_chat_completion(self, req: ChatCompletionRequest) -> Response: async def _handle_exception(self, exception): if isinstance(exception, CppExecutorError): - logger.error(exception) + logger.error(traceback.format_exc()) signal.raise_signal(signal.SIGINT) elif isinstance(exception, HTTPException): raise exception # Re-raise HTTP exceptions properly else: - logger.error(exception) + logger.error(traceback.format_exc()) raise HTTPException(status_code=500, detail=f"Internal server error {str(exception)}") async def _send_context_request(self, ctx_server: str, ctx_req: Union[CompletionRequest, ChatCompletionRequest]): diff --git a/tensorrt_llm/serve/openai_server.py b/tensorrt_llm/serve/openai_server.py index 63f7e82c73d..8a5c55a1090 100644 --- a/tensorrt_llm/serve/openai_server.py +++ b/tensorrt_llm/serve/openai_server.py @@ -310,9 +310,11 @@ async def create_chat_response( response = await create_chat_response(promise, postproc_params, disaggregated_params) return JSONResponse(content=response.model_dump()) except CppExecutorError: + logger.error(traceback.format_exc()) # If internal executor error is raised, shutdown the server signal.raise_signal(signal.SIGINT) except Exception as e: + logger.error(traceback.format_exc()) return self.create_error_response(str(e)) async def openai_completion(self, request: CompletionRequest, raw_request: Request) -> Response: @@ -436,10 +438,11 @@ async def create_completion_response( generator, disaggregated_params) return JSONResponse(content=response.model_dump()) except CppExecutorError: + logger.error(traceback.format_exc()) # If internal executor error is raised, shutdown the server signal.raise_signal(signal.SIGINT) except Exception as e: - traceback.print_exc() + logger.error(traceback.format_exc()) return self.create_error_response(str(e)) async def __call__(self, host, port):