Skip to content

Conversation

@anuraaga
Copy link
Collaborator

gunicorn continues to have flakiness but the errors are different and now point to something which I think we can actually fix. With HTTP/1, it's technically not valid to close the response without fully reading the request, most clients will treat this as a connection error instead of reading the response. This could be handled at the app server layer, which is true for both pyvoy and unicorn at least. gunicorn doesn't though. Go doesn't either actually and connect-go does have a similar drain

https://github.com/connectrpc/connect-go/blob/59cc6973156cd9164d6bea493b1d106ed894f2df/compression.go#L101

They don't have an HTTP/1 vs 2 guard there but unless we find issues again later, I would lean on only doing it on HTTP/1 so that max message size limits can be more strict on HTTP/2 where it is valid to end a stream in the middle.

I guess we should probably do similar in async but as we currently don't have any issues there, I will follow up on whether it would fix granian's conformance tests.

Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
@anuraaga anuraaga requested a review from a team January 22, 2026 03:59
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