diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc index c2ab8557675..a04dd7d6462 100644 --- a/iocore/net/UnixNetVConnection.cc +++ b/iocore/net/UnixNetVConnection.cc @@ -87,6 +87,7 @@ read_signal_and_update(int event, UnixNetVConnection *vc) case VC_EVENT_ERROR: case VC_EVENT_ACTIVE_TIMEOUT: case VC_EVENT_INACTIVITY_TIMEOUT: + Warning("Closing orphaned vc %p", vc); Debug("inactivity_cop", "event %d: null read.vio cont, closing vc %p", event, vc); vc->closed = 1; break; diff --git a/proxy/http/Http1ClientSession.cc b/proxy/http/Http1ClientSession.cc index 8f825dc32b1..4855f472ca3 100644 --- a/proxy/http/Http1ClientSession.cc +++ b/proxy/http/Http1ClientSession.cc @@ -316,10 +316,6 @@ Http1ClientSession::state_wait_for_close(int event, void *data) case VC_EVENT_INACTIVITY_TIMEOUT: half_close = false; this->do_io_close(); - if (client_vc != nullptr) { - client_vc->do_io_close(); - client_vc = nullptr; - } break; case VC_EVENT_READ_READY: // Drain any data read @@ -396,10 +392,6 @@ Http1ClientSession::state_keep_alive(int event, void *data) case VC_EVENT_EOS: this->do_io_close(); - if (client_vc != nullptr) { - client_vc->do_io_close(); - client_vc = nullptr; - } break; case VC_EVENT_READ_COMPLETE: diff --git a/proxy/http/Http1ServerSession.cc b/proxy/http/Http1ServerSession.cc index 50b9e5e38c3..a1aedfa5e61 100644 --- a/proxy/http/Http1ServerSession.cc +++ b/proxy/http/Http1ServerSession.cc @@ -185,9 +185,7 @@ Http1ServerSession::release() return; } - // Make sure the vios for the current SM are cleared - server_vc->do_io_read(nullptr, 0, nullptr); - server_vc->do_io_write(nullptr, 0, nullptr); + // release_session or do_io_close will clear the IO operations from the SM HSMresult_t r = httpSessionManager.release_session(this);