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]
