Bug Fixes
- ASGI: serve the next request on a kept-alive HTTP/1.1 connection as soon as
the previous response is complete. It used to wait until the application
returned, so a background task (Starlette, FastAPI) held up every request
behind it on the same connection
(#3819). - ASGI: refuse an informational (1xx) response sent after the final response
has started, instead of writing it out of order (RFC 9110 §15.2). - gthread: when a worker stops (
max_requests, reload, SIGTERM), keep its
kept-alive connections open for up to 2 seconds and answer a request that
arrives on one withConnection: close, instead of closing them right away.
A client reusing such a connection, such as one following a redirect, lost
its request (RFC 9112 §9.6)
(#3821).
Full changelog: https://github.com/benoitc/gunicorn/blob/master/docs/content/news.md