Gemini CLI 修复:重试循环未传递终止信号导致超时失效
chelsealong · ghdev · 2026-08-26
Google Gemini CLI 提交了一个 PR,修复了 BaseLlmClient 中的超时控制失效问题。
问题背景:
- BaseLlmClient 的 generateContent 和 generateJson 方法接受 abortSignal 并传递给单个 API 请求,但未将其传递给 retryWithBackoff 的 signal 选项。
- 这导致调用方设置的超时只能中止当前的 HTTP 请求,而无法停止重试循环本身。重试机制仍会按照完整的指数退避计划(如 5s/10s/20s/30s)继续尝试,远超预期的超时时间。
修复内容:
- 将 abortSignal 正确传递给 retryWithBackoff,确保超时能立即终止重试循环。
- 此举解决了 Issue #29065 中的次生症状:当 SessionSummaryService 因模型配置错误(硬编码了不存在的模型)而失败时,原本会卡在重试循环中刷屏 65 秒,现在能快速静默失败(返回 null)。
注意:该 PR 未修复 Issue #29065 的根本原因(即硬编码模型名称),仅修复了由此引发的超时失控问题。
「编程与Agent」频道最新
- 马斯克转发用户实测:Grok Bot 不比 Codex 强但更顺手 — elonmusk · 2026-10-15
- 独立开发者发布 Blob0:把 S3/R2 对象存储管成 Mac 本地文件夹 — yihui_indie · 2026-10-15
- 2026 AI 工程师六层技能栈:从向量库到 Agent 编排 — mdancho84 · 2026-10-15
- 用 ChatGPT 搭机械工程工作流:Agent 编排热固封头研究,却因重置中断 — burhop · 2026-10-15
- 开源 Harness 工程课爆火:19k 星教你让编码 Agent 干活可靠 — thisguyknowsai · 2026-10-15
- 6 人团队 3 个月:AI Agent 进驻医保预授权平台的落地实录 — alex_verem · 2026-10-15