Skip to content

Bind HTTP request admission to transport EOF - #31

Merged
kentbull merged 1 commit into
release/v0.6.20from
fix/http-server-eof-ownership-v0.6.20
Aug 29, 2026
Merged

kentbull merged 1 commit into
release/v0.6.20from
fix/http-server-eof-ownership-v0.6.20

Conversation

@kentbull

@kentbull kentbull commented Aug 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • latch a transport EOF into the HTTP Requestant before request parsing in the same recurrence
  • prevent persistent parser rearm after the request side has closed
  • cover empty EOF and buffered pipeline suffix behavior with real client/server sockets and a client write half-close

Why

The server services connections before receiving bytes, so receive can discover EOF after the connection phase has already checked the remoter. Without a same-recurrence handoff, the HTTP layer does not learn that inbound admission has ended. Response settlement can then create another persistent parser and make a buffered suffix eligible as a new request.

TCP EOF is directional. It must stop admission of new inbound requests while still allowing the server to finish the response for an already-admitted complete request. This change establishes that boundary without treating EOF as an immediate bidirectional abort.

Tracks ioflo#195. The eventual upstream port is blocked on ioflo#163 and the parser-settlement prerequisite chain.

Latch a newly observed transport cutoff into the request parser before servicing requests in the same recurrence. This keeps EOF from being mistaken for permission to admit another request while allowing an already-admitted request to finish.

Do not rearm persistent request parsing after the request side has closed. Cover empty EOF and buffered pipeline suffix behavior with real socket half-closes.
@kentbull
kentbull merged commit 1aeda80 into release/v0.6.20 Aug 29, 2026
6 checks passed
@kentbull
kentbull deleted the fix/http-server-eof-ownership-v0.6.20 branch August 29, 2026 22:47
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