Skip to content

fix(http): retry Windows excluded ephemeral-port bind failures - #86

Merged
turlamai merged 3 commits into
mainfrom
fix/g4-http-port-retry-20261029
Oct 30, 2026
Merged

turlamai merged 3 commits into
mainfrom
fix/g4-http-port-retry-20261029

Conversation

@turlamai

Copy link
Copy Markdown
Owner

Independent G4 reliability fix (not part of native transport PR #85)

Base: Glaze main 27b1a07b3d928111287d9280d23e00254ff3b6d5. Under PR #85 Windows CI the actual native WebView2 e2e passed all checks including 24 parallel GLZ1 invokes, but a subsequent raco glaze verify over the explicit HTTP adapter failed because random candidate TCP port 49777 was unavailable (Windows WinError 10013).

Root cause: start-server-on-free-port intentionally catches exn:fail:network? and tries a different candidate. But start-server launches the accept loop asynchronously; when wait-accepting! times out it incorrectly throws exn:fail:contract? via raise-arguments-error. That prevents the documented retry policy from running.

Change: narrowly classify the failed accepting probe as exn:fail:network (with continuation marks) after shutting down the failed listener; preserve original diagnostic text and 3-second deadline. Other API argument validation and token/cross-origin trust rules do not change.

Acceptance: CI three-platform Racket matrix plus Windows agent verify step green at exact PR head, then merge. Keep this PR separate from #85 because the issue is the HTTP adapter's port allocator, not the FFI callback bridge. If this patch is rejected, the CI issue remains open rather than masking it.

No local Racket is available in this environment, so PR CI is the execution evidence. Related issue #76 and consumer PR turlamai/hackdigest#10.

@turlamai
turlamai merged commit ae7fdec into main Oct 30, 2026
15 checks passed
@github-actions
github-actions Bot deleted the fix/g4-http-port-retry-20261029 branch October 30, 2026 02:57
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