ci: concurrency group is keyed on the branch name, so same-named fork branches can cancel each other's CI
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github-actions, yaml
- 領域
- ci-cd
調査の方向性
ci.ymlを読み、実行をすでにpull request番号で識別しているlabel_prs.ymlのconcurrency groupと比較します。codeql.yml、miri.yml、pr_title_check.ymlでも同じパターンを確認し、次にdev/ci/check-ci-config.pyで該当するCI設定テストを調べます。各pull requestに個別のgroupが割り当てられ、既存のfallbackが引き続き機能し、テストが同じ名前のforkブランチを2つ対象にすれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
ci.yml cancels in-flight runs per concurrency group, and the group for a pull request is built from github.head_ref, which is the branch name alone, with no repository or PR number:
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}-${{ github.event.action == 'labeled' && github.event.label.name || github.event_name }}
cancel-in-progress: true
github.repository here is apache/datafusion-comet for every pull request, so two open pull requests from different forks whose branches share a name land in the same group. A push to one cancels the other's in-flight run, and the cancelled pull request shows a cancelled Required Checks until someone re-runs it.
Nearly every pull request comes from a fork (194 of the 198 open ones on 2026-10-28), and contributors often use a generic branch name such as main, patch-1 or fix, so a collision does not need unusual bad luck.
codeql.yml, miri.yml and pr_title_check.yml build their group the same way. label_prs.yml already keys on github.event.pull_request.number, which is the shape to copy.
To Reproduce
Not reproduced on a real pull request. I found no cancelled run caused by this in the roughly 1,500 most recent pull requests. The nearest case is two pull requests from different forks that both used the branch fix/park-native-scan-loop and were open together for about five minutes on 2026-09-25 (#6092 and #6219), with no run in flight on the first when the second started. The behaviour follows from how the group is built, and the GitHub documentation for concurrency is explicit that a new run in a group cancels the one in progress.
To reproduce: open two pull requests from different forks with the same branch name, push to both within a run's duration, and watch the first run end cancelled.
Expected behavior
A push to one pull request cancels only that pull request's earlier run.
Additional context
Keying on the pull request number fixes it for pull request events, with the existing fallbacks for the others:
group: ${{ github.repository }}-${{ github.event.pull_request.number || github.sha }}-${{ github.workflow }}-...
ci_label.yml calls ci.yml, and the pull_request context is the same in the called workflow, so label runs keep a stable key too. arrow-rs made the same change in apache/arrow-rs#11788, with a test that two pull requests with the same branch name get different groups. dev/ci/check-ci-config.py is the place to pin it.
- 主要言語
- Scala
- スター
- 1.3k
- フォーク
- 398
- 平均マージ
- 2日 21時間
- マージ済み PR(30日)
- 329
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/datafusion-comet のほかの issue
-
area:ci enhancement priority:low requires-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
apache/datafusion-comet#7319 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
requires-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/datafusion-comet#7240 ·
メンテナーはふだん 1 日以内に返信
-
bug priority:low
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
apache/datafusion-comet#7176 ·
メンテナーはふだん 1 日以内に返信
-
docs: update Scala comments that reference the removed iceberg-writes.md page対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンenhancement
難易度 1/5 1〜3時間 初心者へのやさしさ 83/100
apache/datafusion-comet#7101 ·
メンテナーはふだん 1 日以内に返信
-
requires-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
apache/datafusion-comet#7001 ·
メンテナーはふだん 1 日以内に返信
apache/datafusion-comet の issue をすべて見る
似ている issue
-
area:build priority:P2 status:backlog
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
KD5UJC-XYZ/scarab#648 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
lichess-org/lila#22324 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
canton-network/splice#8142 ·
メンテナーはふだん 1 日以内に返信
-
Users who join a new meeting at the same moment: one sometimes gets "Ops, something went wrong" because bbb-web drops their registration (race on `Meeting.userCustomData`)対応中かも @antobinary が 1 日前に担当しました。 オープンmodule: core
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
bigbluebutton/bigbluebutton#26318 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
メンテナーはふだん 1 日以内に返信