ci: concurrency group is keyed on the branch name, so same-named fork branches can cancel each other's CI
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- github-actions, yaml
- Ambito
- ci-cd
Direzione di ricerca
Leggi ci.yml e confronta il suo gruppo di concorrenza con quello di label_prs.yml, che identifica già le esecuzioni in base al numero della pull request. Verifica lo stesso schema in codeql.yml, miri.yml e pr_title_check.yml, poi esamina il test pertinente della configurazione CI in dev/ci/check-ci-config.py. Il lavoro è completato quando ogni pull request ha un gruppo distinto, i fallback esistenti continuano a funzionare e il test copre due branch di fork con lo stesso nome.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Scala
- Stelle
- 1.3k
- Fork
- 398
- Merge medio
- 2g 21h
- PR unite (30g)
- 329
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/datafusion-comet
-
area:ci enhancement priority:low requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/datafusion-comet#7319 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion-comet#7240 ·
I maintainer di solito rispondono entro 1 giorno
-
bug priority:low
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/datafusion-comet#7176 ·
I maintainer di solito rispondono entro 1 giorno
-
docs: update Scala comments that reference the removed iceberg-writes.md pageForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaenhancement
Difficoltà 1/5 1-3 ore Idoneità per principianti 83/100
apache/datafusion-comet#7101 ·
I maintainer di solito rispondono entro 1 giorno
-
requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/datafusion-comet#7001 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/datafusion-comet
Issue simili
-
area:build priority:P2 status:backlog
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
KD5UJC-XYZ/scarab#648 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
lichess-org/lila#22324 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
canton-network/splice#8142 ·
I maintainer di solito rispondono entro 1 giorno
-
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`)Forse già presa @antobinary l’ha presa 1 giorno fa. Apertamodule: core
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bigbluebutton/bigbluebutton#26318 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno