WIP: fix(std/net/http): correct server lifecycle #1478

Draft
jay wants to merge 1 commit from jay/gerbil:bug-http-server-lifecycle into v0.19-staging
Member

HTTP server shutdown can hang because listener EBADF errors are retried and condition-variable timeout results are ignored. Peer disconnects during server-owned response closing are also logged as unhandled handler failures.

This PR makes EBADF terminal, enforces the shutdown deadline, caches listener addresses before closure, and contains only EPIPE/ECONNRESET from response finalization.

HTTP server shutdown can hang because listener `EBADF` errors are retried and condition-variable timeout results are ignored. Peer disconnects during server-owned response closing are also logged as unhandled handler failures. This PR makes `EBADF` terminal, enforces the shutdown deadline, caches listener addresses before closure, and contains only `EPIPE`/`ECONNRESET` from response finalization.
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u bug-http-server-lifecycle:jay-bug-http-server-lifecycle
git switch jay-bug-http-server-lifecycle

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch v0.19-staging
git merge --no-ff jay-bug-http-server-lifecycle
git switch jay-bug-http-server-lifecycle
git rebase v0.19-staging
git switch v0.19-staging
git merge --ff-only jay-bug-http-server-lifecycle
git switch jay-bug-http-server-lifecycle
git rebase v0.19-staging
git switch v0.19-staging
git merge --no-ff jay-bug-http-server-lifecycle
git switch v0.19-staging
git merge --squash jay-bug-http-server-lifecycle
git switch v0.19-staging
git merge --ff-only jay-bug-http-server-lifecycle
git switch v0.19-staging
git merge jay-bug-http-server-lifecycle
git push origin v0.19-staging
Sign in to join this conversation.
No description provided.