From 9a50d81844d71eebf29f8d879470881e0d44442f Mon Sep 17 00:00:00 2001 From: Masakazu Kitajo Date: Tue, 17 Mar 2026 12:02:24 -0600 Subject: [PATCH 1/2] Fix possible crashes on OCSP request timeout --- src/proxy/FetchSM.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/proxy/FetchSM.cc b/src/proxy/FetchSM.cc index 66b800fd6a7..11fef0f8494 100644 --- a/src/proxy/FetchSM.cc +++ b/src/proxy/FetchSM.cc @@ -61,6 +61,7 @@ FetchSM::cleanUp() } if (http_vc) { + http_vc->do_io_shutdown(IO_SHUTDOWN_READWRITE); http_vc->do_io_close(); } free_MIOBuffer(req_buffer); From f8ef86359af8ba9793d063fa4cfb77c8d5d4c491 Mon Sep 17 00:00:00 2001 From: Masakazu Kitajo Date: Tue, 17 Mar 2026 14:36:14 -0600 Subject: [PATCH 2/2] Acquire lock in do_io_shutdown --- src/proxy/PluginVC.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/proxy/PluginVC.cc b/src/proxy/PluginVC.cc index ab9d684aa6a..3caa8dc673f 100644 --- a/src/proxy/PluginVC.cc +++ b/src/proxy/PluginVC.cc @@ -397,6 +397,8 @@ PluginVC::do_io_shutdown(ShutdownHowTo_t howto) ink_assert(!closed); ink_assert(magic == PluginVCMagic_t::ALIVE); + SCOPED_MUTEX_LOCK(lock, mutex, this_ethread()); + switch (howto) { case IO_SHUTDOWN_READ: read_state.shutdown = true;