Prhub

#53669 [XPU] [CI] Add retry for v1/sample in Intel GPU CI

原始 PR 作者 zxd1997066 合并时间 2026-09-01 07:34 文件变更 1 提交数 2 评论 2 代码增减 +4 / -0

执行摘要

Intel GPU CI 为 v1/sample 测试加自动重试,缓解偶发失败

PR body 的 Purpose 仅声明 'Add retry for v1/sample in Intel GPU CI',未关联 Issue。结合仓库近期动态(PR #54172 处理 XPU 上 Qwen2-VL 数值发散导致的 flaky),可推断 v1/sample 在 Intel GPU CI 上存在偶发失败,需用自动重试吸收波动、降低维护者手动重跑与 CI 误报成本。

改动仅 4 行,浏览即可无需精读。值得记录的点:Buildkite retry.automatic(exit_status + limit)是 CI 稳定性治理的轻量模板;但重试作用于整条命令链,粒度偏粗。若后续 v1/sample flaky 仍频繁,建议先定位根因(XPU 数值发散、资源竞争)而非依赖重试掩盖。

讨论亮点

本 PR 无实质技术讨论,评论以流程性为主:jikunshang 评论 '/ci run' 触发 Buildkite CI #86439 验证;claude[bot] 提示 fork 来源 PR 默认禁用自动审查,维护者可评论 '@claude review' 开启一次性审查;jikunshang 最终直接 APPROVED,未对重试次数、匹配退出码等策略提出异议,说明该改动风险低、被快速放行。

实现拆解

  1. 变更入口:唯一改动文件为 .buildkite/intel_jobs/misc_intel.yaml,具体是 Miscellaneous Tests (Sample/Logits Processors) 步骤(device 为 intel_gpu)。
  2. 核心变更:在该步骤的 commands 之后、parallelism: 4 之前新增 retry.automatic 配置块:匹配 exit_status: 1(pytest 用例失败的标准退出码)时执行自动重试,limit: 1 表示最多重试 1 次。这是 Buildkite 原生机制,无需自定义脚本。
  3. 作用范围:retry 挂在步骤级别,而该步骤的 commands 是一条由 && 串联的 bash 命令链(先跑 v1/logits_processors,再跑 v1/test_oracle.py、v1/test_request.py、v1/test_outputs.py,最后跑 v1/sample),任一段失败都会触发整个步骤重跑,而非仅重跑 v1/sample。
  4. 验证与合入:PR 未新增测试;维护者 jikunshang 评论 /ci run 触发 Buildkite CI #86439 验证配置,随后直接 APPROVED 并合入。第二次提交为 Merge branch 'main',用于消除与主干的分叉。
文件 模块 状态 重要度
.buildkite/intel_jobs/misc_intel.yaml CI 任务 modified 3.25

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

评论区精华

触发 CI 验证 other

jikunshang 评论 '/ci run' 请求运行 CI,github-actions[bot] 随即确认已为 commit 265cfeff9589 触发 Buildkite CI #86439。

结论:CI 成功触发并完成验证,为合并提供依据。 · 已解决

fork PR 的自动审查策略 other

claude[bot] 提示该 PR 来自 fork,自动化 review 默认禁用;维护者可评论 '@claude review' 触发一次性审查。

结论:jikunshang 未启用额外机器人审查,直接人工 APPROVED,流程上接受。 · 已解决

风险与影响

重试粒度偏粗:retry 作用于整个步骤,commands 是包含 logits_processors、test_oracle/test_request/test_outputs、v1/sample 的整条命令链(&& 串联),任一段失败都会重跑整个步骤,失败场景下 CI 耗时最多可能翻倍。覆盖范围有限:仅匹配 exit_status: 1;步骤超时(timeout_in_minutes: 60 被 Buildkite 中止)或 pytest 崩溃(如段错误,退出码非 1)不会触发重试。可能掩盖回归首次失败现场:自动重试会覆盖第一次失败现场,给根因定位增加干扰;但重试后仍失败则 CI 依然标红,不会最终放行真实回归。

对用户与运行时零影响(纯 CI 配置)。对 Intel GPU CI 流水线的直接影响是 v1/sample 所在步骤失败后自动重跑一次,预期减少 flaky 导致的 red build 与人工重跑;副作用是失败场景下该步骤耗时增长(最多约翻倍)。对团队属于低风险 CI 稳定性治理。

重试粒度覆盖整条命令链 仅匹配 exit_status 1 CI 耗时可能翻倍 可能掩盖回归首现场

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论