Repository navigation
test: isolate descendant cleanup HTTP probes - #4116
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. What this changesThis PR replaces Fetch probes with one-shot HTTP requests that consume responses and handle request and response errors. Example: The cleanup fixture terminates its HTTP listener after bootstrap exits with code 7.
Review scores
ProductKind: Test only · Worth it: Yes · Fix scope: Complete Merge readiness✅ Ready for maintainer review Keep open: this maintainer-authored PR contains useful test isolation work absent from current main, with no blocking findings. Priority: P2 Before mergeNone. FindingsNone. Agent review detailsHow this fits togetherThe local-auth runner launches a persistent Convex process-group owner; this test substitutes a small HTTP backend and checks descendant termination after success, bootstrap failure, and IPC disconnection. flowchart TD
A[Lifecycle test] --> B[Persistent launcher]
B --> C[Bootstrap fixture]
C --> D[HTTP backend descendant]
A --> E[One-shot HTTP probe]
E --> D
A --> F[Signal or IPC disconnect]
F --> B
Technical reviewBest possible solution: Keep the transport repair inside this fixture while retaining its existing process-group owner and lifecycle assertions. Do we have a high-confidence way to reproduce the issue? The author reports repeated before/after runs on Node 24.22.1/macOS, corroborated by the earlier scanner-adoption report; source confirms the implicated Fetch probes, but this review did not execute tests or independently establish the intermittent cause. Is this the best way to solve the issue? Best-fix verdict: acceptable mitigation at the correct fixture boundary; changing production networking or suppressing unhandled errors would exceed the demonstrated problem, whereas isolated requests preserve the lifecycle contract. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 793dea96f266. Provenance checked
TestingProof path: in-process harness. SecurityNone. EvidenceWhat I checked:
Likely related people:
Review metrics
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment Reviewed October 28, 2026, 8:01 AM ET / 12:01 UTC. |
Use one-shot node:http requests and drain responses when probing a fixture listener that is terminated between requests. Preserve all alive/dead and descendant ownership assertions while avoiding the observed Node fetch/undici setTypeOfService exception.
24fd316 to
a31d58e
Compare
Summary
The descendant-cleanup fixture can pass its assertions yet fail the unit gate with an unhandled Node/Undici
setTypeOfService EINVALas its listener terminates. Give each HTTP probe its own socket, drain its response, and handle request and response errors through the existing promise.All alive/dead, bootstrap, process-group ownership, disconnect and termination assertions remain.
Evidence
After: 20 iterations of all three cleanup cases and a separate formatted final run pass without the error. Independent P0–P3 review found no actionable defect.
793dea96f26627f234ee1f305aca7d2581f91368; prerequisite heada31d58e2a96b02f23626af8f0d9a71b33cd88628has a byte-identical fixture delta. Fresh combined-stack validation at descendanta27156f02eec6737ef0eec7fb6d03fc3528cb135: static; all 15 focused tests; full unit coverage (8,304 passed / 5 skipped, no unhandled errors); TypeScript/build; package verification — all pass..Merge Danger
Door: two-way
Reversible test-client isolation.
Blast Radius: tests
The fixture still checks actual descendant termination.