This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 407aeb29f076454166c0f92046d419f1847978f6 Author: Masaori Koshiba <masa...@apache.org> AuthorDate: Tue Jul 22 07:13:09 2025 +0900 Disable read/write_vio in Http2Stream::transaction_done (#12367) (cherry picked from commit 9a8f86880864b15ebfe1cb5a8ce36bd5a8ab3482) --- src/proxy/http2/Http2Stream.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/proxy/http2/Http2Stream.cc b/src/proxy/http2/Http2Stream.cc index 7096777ab4..eb8c977f01 100644 --- a/src/proxy/http2/Http2Stream.cc +++ b/src/proxy/http2/Http2Stream.cc @@ -600,7 +600,11 @@ Http2Stream::transaction_done() } Http2ConnectionState &state = this->get_connection_state(); ink_release_assert(closed || !state.is_state_closed()); + + // HttpSM is gone, no more reading or writing _sm = nullptr; + read_vio.disable(); + write_vio.disable(); if (closed) { // Safe to initiate SSN_CLOSE if this is the last stream @@ -902,8 +906,8 @@ Http2Stream::update_write_request(bool call_update) void Http2Stream::signal_read_event(int event) { - if (this->read_vio.cont == nullptr || this->read_vio.cont->mutex == nullptr || this->read_vio.op == VIO::NONE || - this->terminate_stream) { + if (this->_sm == nullptr || this->read_vio.cont == nullptr || this->read_vio.cont->mutex == nullptr || + this->read_vio.op == VIO::NONE || this->terminate_stream) { return; } @@ -931,8 +935,8 @@ void Http2Stream::signal_write_event(int event, bool call_update) { // Don't signal a write event if in fact nothing was written - if (this->write_vio.cont == nullptr || this->write_vio.cont->mutex == nullptr || this->write_vio.op == VIO::NONE || - this->terminate_stream) { + if (this->_sm == nullptr || this->write_vio.cont == nullptr || this->write_vio.cont->mutex == nullptr || + this->write_vio.op == VIO::NONE || this->terminate_stream) { return; }