Skip to content

fix(ci,testing): four CI flakes — helm spawnSync wait, re-run merges stale parts, Chrome component extensions, profile-writer race - #746

Merged
sebyx07 merged 2 commits into
mainfrom
ci/flakes-helm-attempt-parts-chrome
Oct 9, 2026
Merged

sebyx07 merged 2 commits into
mainfrom
ci/flakes-helm-attempt-parts-chrome

Conversation

@sebyx07

@sebyx07 sebyx07 commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Root causes for the flakes that made every release need manual reruns.

Flake Evidence Root cause Fix
scaffold-helm-retire.test.ts hangs, worker SIGKILL at the unit step's 480 s 12 runs 2026-10-08/09; run 37882529833 got exit 0 and empty stdout at exactly 30000 ms; the deadline kill found no helm process left Bun.spawnSync inside a bun test --parallel worker missed helm's exit (helm had rendered and exited 0); the sync wait also holds the event loop, so the test timeout can't fire. Not network: no chart deps, --kube-version set awaited Bun.spawn with its own SIGKILL deadline; the wait ends on exit, not pipe EOF; failure names the chart and how it ended
"Re-run failed jobs" stays red run 37918316075 attempt 2: verify downloaded attempt 1's red verify-part-unit-1 (artifact ids aren't time-ordered) beside the green rerun one artifact name per part across attempts artifact + file named by github.run_attempt; scripts/verify-parts.ts (lib/ci-attempt-parts.ts, unit-tested) hands x verify merge each part's newest attempt
x shot popup e2e: extra chrome-extension://nkeimhogjdpnpccoofpliimaahmaaome/thunk.js refused run 37879355801 --disable-extensions leaves Google Chrome's component extensions running; browser-wide Fetch paused one --disable-component-extensions-with-background-pages; new e2e asserts a fresh launch has only page about:blank (red without the flag)
Chrome profile "writer outside the process group" run 37945274280 packages (2/2) a 5 ms poller forking sleep/mkdir reacted slower than the 50 ms settle on a loaded runner (reproduced by delaying the writer 100 ms) test drives remove() with a settle wider than its writer (settleMs param)

Not fixed here (listed with evidence in the report): push-send-deadline (already fixed by #718), client-navigation-swap "another surface" (1×, 123 ms, no output kept), isolated-plugins GC count (1×, no values kept: attempt-named artifacts now keep them), Docker Hub unauthorized pulling versitygw (registry).

Proof: this PR's CI green on attempt 1.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

The included review limit has been reached and this organization has disabled usage-based review continuation. Wait for reviews to reset or ask a billing admin to change After included review limits.

  • Ask an admin to enable usage-based reviews

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Next included review available in 15 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 108 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: developerz-ai/ultimate/.coderabbit.yml
  • Review profile: ASSERTIVE
  • Plan: Essentials
  • Run ID: 0dc25679-ad38-4828-9b42-4452dd30bf15

📥 Commits

Reviewing files that changed from the base of the PR and between bcf3030 and 168b7f3.


📒 Files selected for processing (15)
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • docs/architecture/guards.md
  • framework.manifest.json
  • packages/cli/src/templates/scaffold-helm-retire.test.ts
  • packages/testing/e2e/cdp-launch-targets.e2e.test.ts
  • packages/testing/src/cdp-launch-profile.test.ts
  • packages/testing/src/cdp-launch-profile.ts
  • packages/testing/src/cdp-launch.ts
  • scripts/ci-workflow-shape-runs.test.ts
  • scripts/ci-workflow-shape.test.ts
  • scripts/lib/ci-attempt-parts.test.ts
  • scripts/lib/ci-attempt-parts.ts
  • scripts/verify-parts.ts
  • wiki/Error-Codes.md


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

…stale parts, Chrome component extensions, late-profile-writer race

- scaffold-helm-retire.test.ts awaits `helm template` (Bun.spawn + SIGKILL deadline) instead of
  Bun.spawnSync, whose wait inside a `bun test --parallel` worker missed helm's exit: exit 0 with
  empty stdout at exactly 30000 ms (run 37882529833), or no wake at all until the unit step's 480 s
  deadline (12 runs 2026-10-08/09). No network: no chart deps, --kube-version.
- ci.yml names each gate part by github.run_attempt (artifact and file), and the verify job merges
  each part's newest attempt via scripts/verify-parts.ts (lib/ci-attempt-parts.ts, tested):
  run 37918316075 attempt 2 merged attempt 1's red unit-1 beside the green rerun.
- launchChrome passes --disable-component-extensions-with-background-pages: the hangouts component
  extension's thunk.js was paused by x shot's browser-wide Fetch and logged as an off-list request
  (run 37879355801). Held by e2e/cdp-launch-targets.e2e.test.ts.
- The outside-group profile writer test drives remove() with a settle wider than its writer;
  ThrowawayProfile.remove takes settleMs. A forking 5 ms poller lost to the 50 ms settle on a loaded
  runner (run 37945274280, packages 2/2); reproduced by delaying the writer 100 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sebyx07
sebyx07 force-pushed the ci/flakes-helm-attempt-parts-chrome branch from 604b7cf to dc58cf6 Compare October 9, 2026 15:38
…rome's own browser_ui

CI's Chrome build lists browser_ui chrome://omnibox-popup targets beside the page; they load no web
resource. An extension page or worker is what interception paused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sebyx07
sebyx07 merged commit dcc21ed into main Oct 9, 2026
17 checks passed
@sebyx07
sebyx07 deleted the ci/flakes-helm-attempt-parts-chrome branch October 9, 2026 15:49
@sebyx07 sebyx07 mentioned this pull request Oct 9, 2026
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