Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/gc-native-roots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,28 @@ on:
pull_request:
workflow_dispatch:

concurrency:
group: gc-native-roots-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }}
# Same shape as llvm-inprocess (#7357), and for the same measured reason.
#
# This workflow had NO concurrency group at all, so nothing ever superseded a
# stale run. Its four-arm matrix therefore multiplied: ten consecutive runs
# were checked and the macos-14 arm was `queued` in every one of them --
# never executed, not once. ubuntu-latest and windows-latest likewise. Only
# the aarch64 arm ever reached a runner, which is why it was the only arm
# ever seen red or green.
#
# That is CLAUDE.md's fourth hazard wearing a different hat: three quarters of
# this matrix has been reporting nothing while looking like platform coverage.
# It also made #7392 unanswerable -- whether that segfault is ELF-specific
# cannot be told apart from "the macOS arm has never run the probe".
#
# `cancel-in-progress: false` alone would not fix it: GitHub allows at most one
# PENDING run per group and cancels the previously pending one when a new run
# enters, regardless of that setting (#7205). Keying push runs on the SHA gives
# every merged commit a group of its own; PR runs supersede freely.
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
# Every host shape Perry supports for native roots, on one job. macOS covers
# aarch64 + Mach-O; ubuntu covers x86-64 + ELF — and ELF is where every
Expand Down
19 changes: 19 additions & 0 deletions changelog.d/7393-gc-native-roots-concurrency.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
**Fixed** `gc-native-roots.yml` had no `concurrency` group, so three of its four
platform arms had never executed.

Nothing superseded a stale run, and the workflow's four-arm matrix multiplied
across every push. Ten consecutive runs were checked: the `macos-14` arm was
`queued` in **every one of them** — never executed, not once. `ubuntu-latest`
(x86-64 ELF) and `windows-latest` (PE) likewise. Only the aarch64 arm ever
reached a runner, which is why it was the only arm ever observed red or green.

Three quarters of this matrix has been reporting nothing while presenting as
four-platform coverage — CLAUDE.md's fourth hazard in a different guise. It also
made #7392 unanswerable: whether that segfault is ELF-specific cannot be
distinguished from "the macOS arm has never run the probe."

`cancel-in-progress: false` alone would not fix it. GitHub allows at most one
PENDING run per group and cancels the previously pending one when a new run
enters, regardless of that setting (#7205). Keying push runs on the SHA gives
every merged commit a group of its own while PR runs supersede freely — the same
shape `llvm-inprocess.yml` already uses (#7357).
Loading