ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errors
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
調査の方向性
まず ci/utils/pr_test_summary.py を、特に main() と GitHub API 呼び出し用のリトライラッパーを読み、その後 pr.yaml の PR test summary ステップを確認してください。持続的な 5xx エラーによる最終的な例外がプロセスの終了コードにどう伝わるかを確かめてください。完了条件は、API の HTTP エラーとネットワークエラーだけがログ出力の警告に格下げされて終了コード 0 になり、パースやそのほかのスクリプトエラーではジョブが引き続き失敗することです。
索引モデルが issue の本文から書いたものです。
説明
Problem
The PR test summary (non-blocking) job in pr.yaml sometimes fails with a red check on PRs, for example:
Traceback (most recent call last):
File "/home/runner/work/cuopt/cuopt/ci/utils/pr_test_summary.py", line 325, in <module>
main()
...
urllib.error.HTTPError: HTTP Error 502: Bad Gateway
This was noticed in the discussion on #2241 (run https://github.com/NVIDIA/cuopt/actions/runs/41135602235). It was first mistaken for leftover RAPIDS CI telemetry, but it comes from this repo's own ci/utils/pr_test_summary.py.
Why it fails
pr_test_summary.py makes several GitHub API calls: it lists the run's jobs, downloads logs of failed jobs, and creates or updates the PR comment.
- Transient errors (429, 5xx, network errors) are retried up to 4 attempts with
2**attemptsecond backoff (#2204). That is roughly 14 seconds in total. If the API keeps returning errors for longer, the last exception is re-raised. - The script then exits non-zero, and the
run: python3 ci/utils/pr_test_summary.pystep has nocontinue-on-error. #1696 removed it and instead excluded the job from thepr-buildermerge gate (andcheckshasignored_pr_jobs: "pr-test-summary"). - The job is therefore not a merge gate, but it still shows as a failed check on the PR. That is confusing for contributors and reviewers, who may take it for a real test failure, and the summary comment is not posted.
Proposal
Make the summary best-effort so it cannot show red because of an API error:
- Catch persistent API errors at the end of
main(), print a warning to the job log, and exit 0. - Or set
continue-on-error: trueon the step.
Real script bugs (for example parsing errors) should still fail the job, so only the network and HTTP error classes would be swallowed.
Related: #2204, #1696, #2241.
- 主要言語
- Cuda
- スター
- 1.1k
- フォーク
- 249
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 124
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NVIDIA/cuopt のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 32/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
NVIDIA/cuopt#2255 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 半日 初心者へのやさしさ 50/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Out-of-bounds read when solving a DataModel with lower/upper constraint bounds対応中かも @ramakrishnap-nv が今日担当しました。 オープンbug
難易度 3/5 半日 初心者へのやさしさ 55/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
leanprover-community/lean4game#589 ·
メンテナーはふだん 2 日以内に返信
-
Bug good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
RazorConsole/RazorConsole#447 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
kyma-project/api-gateway#2933 ·
メンテナーはふだん 2 日以内に返信
-
Dependabot compat-checks fails on every PR対応中かも @dogancanbakir が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
HappyHackingSpace/witness#120 ·
メンテナーはふだん 1 日以内に返信
-
proxmox_cluster_ha_rules: affinity is ignored for type=node-affinity (negative rules are created as positive)対応中かも @thanos-k が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
ansible-collections/community.proxmox#556 ·
メンテナーはふだん 1 日以内に返信