Skip to content

Harden two transient CI build and test flakes - #727

Merged
omkhar merged 2 commits into
mainfrom
fixup/reduce-ci-flakes
Sep 9, 2026
Merged

Harden two transient CI build and test flakes#727
omkhar merged 2 commits into
mainfrom
fixup/reduce-ci-flakes

Conversation

@omkhar

@omkhar omkhar commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Both issues below are pre-existing, transient CI flakes (they cleared on rerun), not regressions. This lane is about to become a required merge gate, so both are worth hardening now.

  1. The Go tarball download in the container-smoke build's apt-broker-builder stage (runtime/container/Dockerfile) used a node one-liner fetch with no retry. A single transient network blip failed the whole image build. It now retries up to 5 times with backoff, cleaning the partial download between attempts, mirroring the retry-loop shape the Debian-snapshot fetch already uses elsewhere in the same file. The sha256 integrity check still runs only after a completed download, and only after a final failed attempt does the build fail hard. Versions, SHAs, and URLs are unchanged. internal/metadatautil/pinnedinputs_docker.go carries a literal copy of this stage for pin review, so it moved in lockstep.

  2. TestVerifyReleaseOutputsRejectsSymlinkedAssetsDir intermittently failed with ETXTBSY ("text file busy") when exec'ing a freshly written driver script. The race window was that a fixture script's exec bit was set at file-creation time (mode 0o755) rather than after the write was fully closed, so the executable bit and an open writable file description could momentarily coexist on the inode. internal/testkit's shared writeExecutable helper now writes at 0o644, lets the writer close, then chmods to 0o755, guaranteeing the write closes before the file becomes executable and before it is exec'd. Four call sites in internal/testkit/release_outputs_verify_test.go that built their own driver/stub scripts inline now route through this helper instead of duplicating the old write-with-mode pattern.

…e build (stage build, shellcheck, and hadolint pass; the retry branch itself is unexercised; CI build-image hardening)
… (count=20 targeted run plus full testkit and repo suites pass; test-only fixture-safety fix)
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 9, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-09T11:34:42.996537Z c9968b5 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@omkhar

omkhar commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: c9968b5e86

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@omkhar
omkhar merged commit 0297a0a into main Sep 9, 2026
18 of 19 checks passed
@omkhar
omkhar deleted the fixup/reduce-ci-flakes branch September 9, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant