You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "bryancall (via GitHub)" <gi...@apache.org> on 2026/08/25 23:01:54 UTC

Re: [I] SERVER_CLOSE milestone set before UA_BEGIN_WRITE on transform path causes negative o_body [trafficserver]

bryancall commented on issue #12942:
URL: https://github.com/apache/trafficserver/issues/12942#issuecomment-5418061407

   Still present on master as of `052d4a4984`. Re-checked the milestone ordering today.
   
   One correction to the description above: `UA_BEGIN_WRITE` is now marked in three places, not one. `HttpSM::set_next_state()` marks it for `SERVER_READ` and for `SERVE_FROM_CACHE`, and `do_api_callout_internal()` marks it for `API_SEND_RESPONSE_HDR`. The `TRANSFORM_READ` case, which calls `setup_transfer_from_transform()`, sits directly above the other two in that same switch and is the only one of the three transfer paths that does not mark it. That is the whole gap.
   
   So the fix is narrower than "set it earlier somewhere on the transform path": mark `UA_BEGIN_WRITE` in the `TRANSFORM_READ` case, next to `tunnel.tunnel_run()`, exactly as `SERVER_READ` and `SERVE_FROM_CACHE` already do. That makes the three transfer paths consistent and puts the milestone at the point the client write actually begins, rather than at the response-header hook.
   
   I would not clamp the negative value in the logging layer. The ordering is the defect, and clamping would hide it while leaving the chain sum wrong.
   


-- 
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: issues-unsubscribe@trafficserver.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org