Skip to content

Close a partially read request body once the response has been sent - #41

Open
andrewfader wants to merge 1 commit into
socketry:mainfrom
andrewfader:close-partially-read-input
Open

andrewfader wants to merge 1 commit into
socketry:mainfrom
andrewfader:close-partially-read-input

Conversation

@andrewfader

@andrewfader andrewfader commented Oct 23, 2026 •

Copy link
Copy Markdown

rack.input is only closed when a read reaches the end of it. When an application reads part of the request body and then responds (for example, rejecting an upload, or a multipart parse error), the partially read body is never released, and async-http's HTTP/1 server waits for it indefinitely.

This closes a partially read request body when the response body completes, or right away if there is no response body or the application raises. A body the application never read is left alone, so the server can still discard it and keep the connection alive. Tests added.

Signed-off-by: Andrew Fader <fader@yagni.co>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@andrewfader
andrewfader force-pushed the close-partially-read-input branch from b867a21 to b20c644 Compare October 23, 2026 08:21
@andrewfader andrewfader changed the title Close the request body once the response has been sent Close a partially read request body once the response has been sent Oct 23, 2026
@andrewfader
andrewfader marked this pull request as ready for review October 23, 2026 08:30

This branch has not been deployed

No deployments
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