JosiahWI commented on issue #11700: URL: https://github.com/apache/trafficserver/issues/11700#issuecomment-2293459625
I've studied the code and written an AuTest to attempt a reproduction (not successful yet). ## Investigation - We do, at some point prior to deciding to execute the write, open a cache write connection. This is because it's not possible to have a `CACHE_WL_SUCCESS` state unless that happens, and that is the precondition for deciding to do a write instead of open a new connection when a redirected request gets a response. - As @bryancall discovered, the connection we opened has vanished when we attempt the write. There are two places where we set the `cache_write_vc` to nullptr because we moved ownership to another object, and one where we initialize it and it could become `nullptr` if that's what it was initialized with. ## Reproduction Ideas It's not particularly straightforward to reproduce given what we know so far. My first attempt was to force a redirection using the escalate plugin. This mirrors how we think the crash we observed starts. The escalate plugin overrides all the redirection configuration, and I wanted to make sure the timing of the state change on the plugin's hook wasn't the cause of the issue. There were no issues with this setup and it works exactly as expected. My conclusion from all this is that something special needs to happen during the redirection, interfering with it and getting rid of the cache write VC while the redirection request or response is being processed. In the crash we're seeing this is very likely initiated by another plugin on one of the request hooks. I suspect this may also be timing dependent. -- 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-unsubscr...@trafficserver.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org