From 339b365f95e1665097dddb3cb39f203dd93e543c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Tue, 4 Aug 2026 21:00:39 +0200 Subject: [PATCH 1/2] ci(gc): give gc-native-roots a concurrency group The workflow had none, so nothing ever superseded a stale run and its 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. 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 its own group while PR runs supersede freely, the same shape llvm-inprocess.yml already uses (#7357). --- .github/workflows/gc-native-roots.yml | 22 +++++++++++++++++++ ...PLACEHOLDER-gc-native-roots-concurrency.md | 19 ++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md diff --git a/.github/workflows/gc-native-roots.yml b/.github/workflows/gc-native-roots.yml index bbc352c5de..b193325012 100644 --- a/.github/workflows/gc-native-roots.yml +++ b/.github/workflows/gc-native-roots.yml @@ -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 diff --git a/changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md b/changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md new file mode 100644 index 0000000000..fda2626b36 --- /dev/null +++ b/changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md @@ -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). From c8bc26faa906dd6089405cb7f3bcd7cb723c4623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Tue, 4 Aug 2026 21:00:45 +0200 Subject: [PATCH 2/2] docs: name the fragment for its real PR (#7393) --- ...e-roots-concurrency.md => 7393-gc-native-roots-concurrency.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog.d/{PLACEHOLDER-gc-native-roots-concurrency.md => 7393-gc-native-roots-concurrency.md} (100%) diff --git a/changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md b/changelog.d/7393-gc-native-roots-concurrency.md similarity index 100% rename from changelog.d/PLACEHOLDER-gc-native-roots-concurrency.md rename to changelog.d/7393-gc-native-roots-concurrency.md