Prhub

#21305 Increase flush cache timeout in hicache CI

原始 PR 作者 ispobock 合并时间 2026-03-25 10:01 文件变更 1 提交数 2 评论 6 代码增减 +12 / -6

执行摘要

修改缓存刷新重试函数为超时轮询机制,提升 CI 测试的稳定性。

PR动机源自CI运行失败(参考GitHub Actions运行 #23416413582),旨在解决HiCache异步操作导致调度器未完全空闲时缓存刷新失败的问题。引用PR #20746可能提供了相关背景,直接针对此优化以提升CI稳定性。

对于关注CI稳定性的团队,本PR值得简要查看以了解测试工具的改进。设计上从重试次数到超时轮询的转变体现了对异步操作处理的优化,但需注意review中指出的超时精确性问题,可能需要在未来修正。

讨论亮点

review中,gemini-code-assist[bot]指出了超时实现的缺陷:由于requests.post调用可能耗时(最长10秒),总运行时间可能显著超过指定timeout,导致测试时间延长。例如,timeout设为12秒时,函数可能运行超过20秒。讨论强调精确超时控制的重要性,但PR在合并前未见针对此问题的修改,仅由hnyls2002批准通过。

实现拆解

实现集中在python/sglang/test/test_utils.py文件的flush_cache_with_retry函数。关键改动包括:参数从retries和interval改为timeout和poll_interval;逻辑从for循环重试改为while循环轮询直到超时;更新docstring说明轮询机制。具体代码将固定重试替换为基于time.time()的deadline检查,并使用requests.post尝试刷新缓存。

文件 模块 状态 重要度
python/sglang/test/test_utils.py test utilities modified 4.0

关键符号

flush_cache_with_retry

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

超时实现的正确性缺陷 正确性

gemini-code-assist[bot] 指出由于 requests.post 调用时间未计入总超时,可能导致函数运行时间远超指定 timeout。

结论:讨论中提出了问题,但 PR 合并前未见修复;hnyls2002 批准了变更。 · acknowledged but not resolved

风险与影响

主要风险是超时控制不严格可能导致测试运行时间超出预期,在测试环境中可能增加CI执行时间。由于仅修改测试工具函数,无回归、性能或安全风险到生产代码。兼容性方面无影响。

影响范围限于CI测试,特别是依赖flush_cache_with_retry的hicache相关测试。通过提供更长超时和短轮询间隔,提高了在慢速CI环境下的测试通过率,提升整体CI稳定性和可靠性。对用户和系统核心功能无直接影响。

超时不精确 测试时间延长

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论