跳到內容

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 故障儀表盤進行比較。