bneradt opened a new pull request, #13560: URL: https://github.com/apache/trafficserver/pull/13560
Operators who set proxy.config.http.allow_half_open to 0 expect a client abort to tear down the transaction, including the connection to the origin server. Since 10.1, that no longer happens when the client goes away before the origin has sent its response header: ATS holds the origin connection open until the response arrives, so a slow origin combined with impatient clients can accumulate connections until max_requests_in or connections_throttle is reached. The path that keeps the state machine alive in that window exists so that background fill works for clients whose transport cannot half close a connection, such as TLS and HTTP/2. It was reachable for two unrelated reasons, though, since ProxyTransaction::allow_half_open() reports false both for those transports and for an operator who disabled half open connections outright. This patch distinguishes the two by also requiring that half open connections be configured before keeping the transaction alive for a background fetch. Background fill continues to work for TLS and HTTP/2 clients under the default configuration, while disabling half open connections once again aborts the transaction and drops the origin connection. The accompanying autest exercises both outcomes with an origin that reports whether the proxy closed the connection, and the documentation for allow_half_open now describes the interaction. Fixes: #13549 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
