fix: remove top-level concurrency block causing preflight deadlock - #105
Merged
jflowers merged 1 commit intoAug 19, 2026
Merged
Conversation
The caller release.yml and the org-infra reusable preflight workflow
both declare concurrency group 'release-${{ github.repository }}'.
When the caller run acquires the group, the child preflight job
requests the same group, creating a self-deadlock — GitHub fails
the reusable job at startup (0 steps, null runner).
Replicator's release.yml omits the caller-level concurrency block
and works correctly. The reusable preflight already self-serializes
via its own job-level concurrency group, so the caller guard is
redundant.
Remove only the top-level concurrency block (4 lines). All other
hardening (validate-branch, dual-arch macOS signing, robust cask
checksum patching) is preserved.
jflowers
force-pushed
the
fix/release-concurrency-deadlock
branch
from
August 19, 2026 21:28
e8230c7 to
faa869e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Release workflow's preflight job fails at startup with 0 steps executed
(null runner, inverted timestamps). This affects every release attempt —
both runs 32280364928 and 32288949495 failed identically.
Root Cause
The caller
release.ymland the org-infra reusable preflight workflow(
reusable_release_preflight.yml) both declare:Both resolve to
release-unbound-force/dewey. The caller run acquiresthe group, then its child preflight job requests the same group —
creating a self-deadlock. GitHub resolves this by failing the reusable
job at startup.
Evidence
A/B comparison with replicator: replicator uses the identical org-infra
workflows at the same pinned SHA but its caller
release.ymlhas notop-level concurrency block — and its preflight ran all 9 steps
successfully.
Fix
Remove only the top-level
concurrency:block (4 lines). The reusablepreflight already self-serializes via its own job-level concurrency group,
so the caller guard is redundant.
All other hardening is preserved:
validate-branchjob (main-branch enforcement)allow_prerelease)After Merge
Re-run:
gh workflow run release.yml --repo unbound-force/dewey -f tag=v3.3.0The preflight will detect v3.3.0 as a re-run (tag exists at HEAD), skip
creation, verify CI (build-and-test + MegaLinter are green on cd25cc0),
and proceed to GoReleaser.