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

   I traced this assertion failure (captive_action.cancelled == 0 in 
HttpCacheSM::state_cache_open_read) to the read-retry path used by 
proxy.config.http.cache.open_write_fail_action value 5 
(READ_RETRY_STALE_ON_REVALIDATE) with read-while-writer. The reported scenario, 
a client that cancels after sending headers while a slow origin keeps a read 
retry pending, could let a scheduled read-retry event fire into 
state_cache_open_read after the transaction was already cancelled.
   
   The read-retry and captive action handling in HttpCacheSM was reworked in 
https://github.com/apache/trafficserver/pull/12313, first released in 10.1.0. 
Cancellation now routes through HttpCacheSM::cancel_pending_action(), which 
cancels and clears the pending read-retry event, and the cache state machine 
hands back its captive action so HttpSM can cancel an in-flight retry when the 
client goes away. That closes the cancel-during-pending-retry race behind this 
crash.
   
   The report was against 9.1.3 and 9.1.4, which are end-of-life. I am closing 
this as resolved by the rework in 10.1.0. If anyone still reproduces this 
assertion on a current release (10.1.0 or later), please reopen with a 
reproduction so we can take another look.


-- 
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]

Reply via email to