JosiahWI opened a new pull request, #12215:
URL: https://github.com/apache/trafficserver/pull/12215

   This commit mitigates the crash reported in #11700. That crash happens when 
a redirect is issued on a state machine that has already cached a response and 
closed the cache write VC.
   
   After this patch, the state machine will likely open a new cache VC to cache 
the response from the origin it was redirected to. We will refer to the 
original origin as A, and the origin the state machine was redirected to after 
the response from A as B.
   
   We have not yet reproduced this locally - the exact sequence of events that 
gets the state machine into this state are still unknown.
   
   Some things to pay attention to for review:
   
   * Normal behavior is to cache B's response under A's URI. In the edge case 
this patch mitigates, A and B's responses will both be cached, possibly with 
B's response overwriting A's, or maybe not... this is still untested.
   * This does a second cache write when normally only one cache write occurs 
during a state machine's lifetime. Are both writes independent from each 
other's state, and properly cleaned up to prevent memory leaks?
   * Are there other places where the write lock should also be reset?
   * Can the escalate plugin force a redirect to happen after `kill_this()` has 
been called (we tried to detect this with a release assert, and did not).


-- 
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: github-unsubscr...@trafficserver.apache.org

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

Reply via email to