This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.2.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit f434038ffa89bcb429112eb1224ce98c59148758 Author: Bryan Call <[email protected]> AuthorDate: Thu Mar 12 13:00:20 2026 -0700 Fix crash in HttpSM::tunnel_handler on unhandled VC events (#12959) tunnel_handler is set as the VC read/write handler for the server connection after response header parsing, but it only asserts for HTTP_TUNNEL_EVENT_DONE and VC_EVENT_INACTIVITY_TIMEOUT. If a VC_EVENT_ACTIVE_TIMEOUT, VC_EVENT_ERROR, or VC_EVENT_EOS arrives on the server connection, the assertion fires and aborts the process. Widen the assertion to accept these events. The handler already sets terminate_sm = true for all events, so the behavior is correct — only the assertion was too narrow. Fixes #12958 (cherry picked from commit 8d5a71f5e8a1686ff6edcf53935e10add5f70441) --- src/proxy/http/HttpSM.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/proxy/http/HttpSM.cc b/src/proxy/http/HttpSM.cc index 683b9ae96d..51da56f44b 100644 --- a/src/proxy/http/HttpSM.cc +++ b/src/proxy/http/HttpSM.cc @@ -3112,7 +3112,8 @@ HttpSM::tunnel_handler(int event, void * /* data ATS_UNUSED */) return 0; } - ink_assert(event == HTTP_TUNNEL_EVENT_DONE || event == VC_EVENT_INACTIVITY_TIMEOUT); + ink_assert(event == HTTP_TUNNEL_EVENT_DONE || event == VC_EVENT_INACTIVITY_TIMEOUT || event == VC_EVENT_ACTIVE_TIMEOUT || + event == VC_EVENT_ERROR || event == VC_EVENT_EOS); // The tunnel calls this when it is done terminate_sm = true;
