Prhub

#28349 [Fix] Demote OpenAIServingResponses init failure log to one-line WARNING

原始 PR 作者 hnyls2002 合并时间 2026-06-16 07:58 文件变更 1 提交数 1 评论 2 代码增减 +11 / -3

执行摘要

降级 Responses API 初始化失败日志级别

当 OpenAIServingResponses 初始化失败(如 gpt-oss harmony vocab 下载失败)时,异常被捕获且非致命,服务器仍启动,仅 /v1/responses 不可用。但原始代码以 WARNING 级别打印了完整 traceback,使得一个可恢复的条件看起来完全像一个致命的启动错误。

简单直接的日志优化,值得阅读以了解团队日志策略。

讨论亮点

无 review 评论。仅有一条来自 gemini-code-assist[bot] 的自动配额提示。

实现拆解

修改 python/sglang/srt/entrypoints/http_server.py 中的 lifespan 函数内 try/except 块:

  1. except Exception: 改为 except Exception as e 以捕获异常对象。
  2. 将原单行 logger.warning(...) 替换为两条日志:
    • 一条简短的 WARNING,包含端点名称和异常类型及消息。
    • 一条 DEBUG,包含完整 traceback。
  3. 日志消息更加清晰:明确说明 /v1/responses 已禁用。
文件 模块 状态 重要度
python/sglang/srt/entrypoints/http_server.py HTTP 服务 modified 5.79

关键源码片段

python/sglang/srt/entrypoints/http_server.py core-logic

唯一修改的文件,包含 OpenAIServingResponses 初始化的异常处理逻辑。

# python/sglang/srt/entrypoints/http_server.py (lines 383-393)
try:
    from sglang.srt.entrypoints.openai.serving_responses import (
        OpenAIServingResponses,
    )
    fast_api_app.state.openai_serving_responses = OpenAIServingResponses(
        _global_state.tokenizer_manager,
        _global_state.template_manager,
        enable_prompt_tokens_details=True,
        tool_server=tool_server,
    )
except Exception as e:
    # Optional endpoint; a load failure (e.g. the gpt-oss harmony vocab
    # download) must not look like a fatal error. One-line WARNING, full
    # traceback at DEBUG.
    logger.warning(
        f"OpenAI Responses API (/v1/responses) disabled: "
        f"OpenAIServingResponses init failed ({type(e).__name__}: {e})"
    )
    logger.debug(
        f"OpenAIServingResponses init traceback:\n{get_exception_traceback()}"
    )

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。仅改变日志输出方式,不影响控制流或功能逻辑。DEBUG 级别的 traceback 在默认配置下不会被输出到生产日志。

影响范围仅限运维观察。当 OpenAIServingResponses 初始化失败时,日志行从多行 traceback 缩短为一行,减少噪音,便于快速识别非致命问题。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论