bneradt opened a new pull request, #13447: URL: https://github.com/apache/trafficserver/pull/13447
Long-lived HTTP/2 origin connections could remain discoverable after entering half-close, become unreachable when global pooling was configured, or be poisoned by a single request's Connection: close header. Requests assigned to those sessions could fail immediately. Valid responses could also be rejected when headers used CONTINUATION, when their payload length followed HEAD or 304 rules, or when normal SETTINGS acknowledgments crossed the receive-rate limit. This makes outbound HTTP/2 session lifecycle consistently thread-local. It always probes the thread pool before configured global pools, ignores Connection: close for outbound session shutdown, refuses to re-pool half-closed sessions, and evicts sessions as soon as they enter local half-close. HTTP/1.x global pooling behavior remains unchanged. This also carries the protocol's not-processed guarantee from GOAWAY and RST_STREAM REFUSED_STREAM into retry selection. It permits safe replay of non-idempotent requests and rearms a fully buffered request body before a retry. SETTINGS acknowledgments are excluded from the peer abuse limit because their rate is bounded by settings sent by Traffic Server. This accepts CONTINUATION frames in valid outbound stream states without creating a second transaction and preserves request metadata needed to validate HEAD and conditional 304 responses. Replay-based AuTests and custom HTTP/2 origins cover session reuse, half-close handling, retries, split response headers, payload validation, and SETTINGS accounting. -- 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]
