ci(e2e): delete leaked repo-level FULLSEND_MINT_URL from test-repo - #6112
Conversation
The cfmint behaviour-test driver (#6037) writes FULLSEND_MINT_URL as a repo-level variable on test-repo via `fullsend github setup`. Repo variables take precedence over org-level variables of the same name, but nothing deleted it afterward. Since e2e admin tests and behaviour tests share the same org pool and both use a repo named test-repo, a leaked repo-level FULLSEND_MINT_URL from a prior behaviour-test run shadows the org-level value that admin install sets, and points to an already-torn-down CF Worker preview mint — breaking dispatch with a DNS resolution failure for any run that later reuses the org. Delete the repo variable in TeardownPerRepoInstall (immediate cleanup after a per-repo driver run) and in CleanupStaleResources (defensive cleanup so already-poisoned orgs in the pool self-heal). Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 6:24 PM UTC · Completed 6:34 PM UTC Commit: |
PR Summary by QodoCI(e2e): remove leaked repo-level FULLSEND_MINT_URL to stop pooled-org dispatch flakes
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can group findings by type and pick your Finding display, from Minimal to Full |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Looks good to me |
|
🤖 Finished Retro · ✅ Success · Started 9:41 PM UTC · Completed 9:54 PM UTC Commit: |
Retro: PR #6112 —
|
| Time (UTC) | Event |
|---|---|
| 18:23 | PR #6112 created by ralphbean |
| 18:24 | Review agent started (run 31522475917) |
| 18:25 | Qodo review: 0 bugs, 0 violations |
| 18:31 | Human review (ifireball): APPROVED (~8 min from creation) |
| 18:34 | Review agent: APPROVED ("Looks good to me"), ready-for-merge label applied |
| 18:35 | First merge queue attempt bounced after ~79 seconds |
| 21:16 | Second merge queue attempt |
| 21:39 | Merged |
Workflow quality
PR #6112's review went well. The review agent ran 4 sub-agents (correctness, style-conventions, intent-coherence, docs-currency) in parallel. The docs sub-agent identified two real documentation gaps (e2e-testing.md and behaviour-drivers.md don't document the FULLSEND_MINT_URL repo-variable precedence or cleanup requirement), but the challenger sub-agent correctly removed them as scope creep for a bug fix PR. The final verdict was a clean APPROVE with no actionable findings — the correct outcome.
The interesting quality gap is upstream, on PR #6037's review. The review agent on #6037 caught several resource-leak issues (Worker preview leak on partial failure, teardownPreview naming asymmetry), but missed the cross-boundary repo variable leak. The miss is understandable: the variable is created as a side effect of calling fullsend github setup (defined in internal/repos/install.go, not in the diff), and catching it required tracing CLI command side effects across subsystems plus understanding the shared-pool interaction between behaviour tests and admin tests.
Existing issues that cover the identified gaps
All improvement opportunities from this retro are already tracked:
- Review correctness sub-agent should detect missing cleanup for test-shared-state mutations agents#640 — "Review correctness sub-agent should detect missing cleanup for test-shared-state mutations." This retro provides additional evidence: the cfmint driver on PR ci(#5346): add CF Worker preview mint to BT driver #6037 created a shared-state mutation (repo-level
FULLSEND_MINT_URL) without cleanup, and the review agent did not detect it. - Correctness sub-agent should check cleanup/init consistency across all exit paths agents#669 — "Correctness sub-agent should check cleanup/init consistency across all exit paths." Also directly relevant: the
Teardown()method cleaned up the Worker preview but not the repo variable created duringInstall(). - test(e2e): behaviour suite must not install or allowlist singular test-repo #6119 — "test(e2e): behaviour suite must not install or allowlist singular test-repo" (filed by the reviewer ifireball). Addresses the architectural root cause: if behaviour tests stop sharing
test-repowith admin tests, this class of variable-leak bug is eliminated. - Post-review script should suppress APPROVE when human review comments arrive during the review run agents#386 — "Post-review script should suppress APPROVE when human review comments arrive during the review run." Relevant because the agent's approval arrived 3.5 minutes after the human had already approved, providing no incremental value on this PR.
Assessment
No new proposals are warranted. The workflow on PR #6112 executed correctly — the human diagnosed the flake, wrote a clean fix with good documentation, and the review agent reached the right verdict. The upstream gap (PR #6037's missed cleanup) is already tracked by existing improvement issues in the agents repo. The reviewer's follow-up issue (#6119) demonstrates good engineering practice by addressing the architectural root cause.
Summary
cfmint(the behaviour-test CF Worker preview mint driver from ci(#5346): add CF Worker preview mint to BT driver #6037) writesFULLSEND_MINT_URLas a repo-level variable ontest-repoviafullsend github setuptest-repo, a leaked value from a prior behaviour-test run shadows the org-levelFULLSEND_MINT_URLthat admin install setsTestAdminInstallUninstall's triage-dispatch phase intermittently across PRsTeardownPerRepoInstall(immediate cleanup) andCleanupStaleResources(defensive cleanup so already-poisoned orgs in the pool self-heal)Test plan
go build ./pkg/e2etest/... ./pkg/behaviourtest/...go test ./pkg/e2etest/... ./pkg/behaviourtest/... ./internal/forge/...pre-commit run --files pkg/e2etest/cleanup.goAssisted-by: Claude Opus 4.6 noreply@anthropic.com