fix(ci): make redis_setexz a clean noop when redis is unavailable#24046
Closed
AztecBot wants to merge 1 commit into
Closed
fix(ci): make redis_setexz a clean noop when redis is unavailable#24046AztecBot wants to merge 1 commit into
AztecBot wants to merge 1 commit into
Conversation
Collaborator
Author
|
Automatically closing this stale claudebox draft PR (no updates for 5+ days). Re-open if still needed. |
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 nightly barretenberg debug build failed: https://github.com/AztecProtocol/aztec-claude/actions/runs/27398926124
The job dies almost immediately (~1s of script time) with:
Root cause
ci3/sourceenablesset -euo pipefail(viasource_options). The first thingbootstrap_ec2does is:and
redis_setexzwas:redis_cliis intentionally a noop when redis is unavailable (CI_REDIS_AVAILABLE=0) — but a noop that never reads its stdin. So the upstreamgzipin the pipe gets SIGPIPE/EPIPE, fails, and underpipefailaborts the whole script before the build can even start.cache_logalready guards this exact case by draining stdin (cat >/dev/null) when redis is unavailable;redis_setexzdid not, so it remained a latent failure for any environment where redis can't be reached (mirror repos, external contributors, local runs without docker).In normal
aztec-packagesCI redis is always reachable, so this path never triggered. It surfaced on theaztec-claudemirror nightly, whereAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/BUILD_INSTANCE_SSH_KEYare empty, so no redis tunnel is established andCI_REDIS_AVAILABLE=0.Fix
Guard
redis_setexzonCI_REDIS_AVAILABLEexactly likeredis_cli/cache_logalready do, draining stdin when redis is unavailable so the upstream producer never hits a broken pipe.Verified red/green in isolation under
set -euo pipefailwithCI_REDIS_AVAILABLE=0: the old function aborts the caller (exit 141 / broken pipe); the new function returns cleanly and the caller continues.Secondary note (not fixed here — config/sync, not code)
The deeper reason the scheduled nightly runs on
aztec-claudeat all is that the mirror'snextis stale. The workflow in this repo already carries a guard added in4a284902a0a(2026-06-04, "chore: don't run scheduled jobs on forks"):The
aztec-claudecopy is pinned to a 2026-05-20 upstream merge — before that guard landed — so it still runs the scheduled job on the mirror. Onceaztec-claudesyncsnext, the scheduled run will be skipped there entirely. This PR fixes the underlying script fragility regardless, so the broken pipe can't recur in any no-redis environment.Created by claudebox · group:
slackbot