跳到内容

CI 故障

当我的 PR 上的 CI 任务失败,但我认为不是我的 PR 导致失败时,我该怎么做?

  • 查看当前 CI 测试故障仪表盘
    👉 CI 故障仪表盘

  • 如果您的故障已在列表中,则可能与您的 PR 无关。欢迎随时提供修复帮助!

    • 留下评论,并附上更多此类故障实例的链接。
    • 点赞 👍 表示有多少人受到影响。
  • 如果您的故障未在列表中,您应该提交一个问题

提交 CI 测试故障问题

  • 提交错误报告
    👉 新建 CI 故障报告

  • 使用此标题格式

    [CI Failure]: failing-test-job - regex/matching/failing:test
    
  • 对于环境字段

    截至提交 abcdef123,仍在 main 分支上失败

  • 在描述中,包含失败的测试

    FAILED failing/test.py:failing_test1 - Failure description
    FAILED failing/test.py:failing_test2 - Failure description
    https://github.com/orgs/vllm-project/projects/20
    https://github.com/vllm-project/vllm/issues/new?template=400-bug-report.yml
    FAILED failing/test.py:failing_test3 - Failure description
    
  • 附上日志(可折叠部分示例)

    日志

    ERROR 05-20 03:26:38 [dump_input.py:68] Dumping input data
    --- Logging error ---  
    Traceback (most recent call last):  
      File "/usr/local/lib/python3.12/dist-packages/vllm/v1/engine/core.py", line 203, in execute_model  
        return self.model_executor.execute_model(scheduler_output)
    ...
    FAILED failing/test.py:failing_test1 - Failure description
    FAILED failing/test.py:failing_test2 - Failure description
    FAILED failing/test.py:failing_test3 - Failure description
    

日志处理

从 Buildkite 本地下载完整的日志文件。

去除时间戳和颜色

.buildkite/scripts/ci-clean-log.sh

./ci-clean-log.sh ci.log

使用工具 wl-clipboard 进行快速复制粘贴

tail -525 ci_build.log | wl-copy

调查 CI 测试故障

  1. 前往 👉 Buildkite main 分支
  2. 使用二分法查找显示此问题的第一个构建。
  3. 将您的发现添加到 GitHub 问题中。
  4. 如果您找到一个强有力的候选 PR,请在问题中提及并 @ 相关贡献者。

重现故障

CI 测试故障可能不稳定。使用 bash 循环重复运行

.buildkite/scripts/rerun-test.sh

./rerun-test.sh tests/v1/engine/test_engine_core_client.py::test_kv_cache_events[True-tcp]

提交 PR

如果您提交 PR 以修复 CI 故障

  • 将 PR 链接到问题:在 PR 描述中添加 Closes #12345
  • 添加 ci-failure 标签:这有助于在 CI 故障 GitHub 项目中跟踪它。

其他资源

每日分类处理

使用 Buildkite 分析(2 天视图)

  • 识别 main 分支上最近的测试故障。
  • 排除 PR 上合法的测试故障。
  • (可选)忽略可靠性为 0% 的测试。

CI 故障仪表盘进行比较。