bneradt opened a new pull request, #13716: URL: https://github.com/apache/trafficserver/pull/13716
This is a backport to 9.2.x of #12906 (the fix, by @JakeChampion) and #13715 (test coverage for the scenario reported in #12244). When the origin sends an interim response (100 Continue or 103 Early Hints) before a response that goes through a transform, forwarding the interim response sets client_response_hdr_bytes to its header size. The server-to-transform tunnel buffer contains only body data, but perform_cache_write_action() still passed that stale value as the cache-write consumer's skip_bytes. When the body was smaller than the interim headers, ATS aborted on the skip_bytes assertion in HttpTunnel::producer_run, as reported for Range requests of a small, cacheable 308 in #12244. This patch sets the cache-write skip to zero whenever a transform is present, since setup_server_transfer_to_transform() never writes headers into the tunnel buffer. It also adds a regression test covering both a 100 Continue ahead of a compressed POST response and a 103 Early Hints ahead of a 308 served through the range transform. Fixes: #12244 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
