Remove redundant stream closure check in QUIC connection close. QuicStream::OnConnectionClose() will close the stream's write and read side. QuicSession::CloseStream() does the exact same thing. Thus it's unnecessary. Protected by gfe2_reloadable_flag_quic_do_not_close_stream_again_on_connection_close PiperOrigin-RevId: 319096629 Change-Id: I6553276b2df934d944bcce8f9683fadc3201790d
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc index a202c8e..9f4de44 100644 --- a/quic/core/quic_session.cc +++ b/quic/core/quic_session.cc
@@ -397,10 +397,15 @@ for (const auto& it : non_static_streams) { QuicStreamId id = it.first; it.second->OnConnectionClosed(frame.quic_error_code, source); + QUIC_RELOADABLE_FLAG_COUNT( + quic_do_not_close_stream_again_on_connection_close); if (stream_map_.find(id) != stream_map_.end()) { QUIC_BUG << ENDPOINT << "Stream " << id << " failed to close under OnConnectionClosed"; - CloseStream(id); + if (!GetQuicReloadableFlag( + quic_do_not_close_stream_again_on_connection_close)) { + CloseStream(id); + } } }
diff --git a/quic/core/quic_session.h b/quic/core/quic_session.h index 92c4082..f6f7bb6 100644 --- a/quic/core/quic_session.h +++ b/quic/core/quic_session.h
@@ -229,7 +229,7 @@ // Close stream |stream_id|. Whether sending RST_STREAM (and STOP_SENDING) // depends on the sending and receiving states. - // TODO(fayang): Deprecate CloseStream, instead always use ResetStream to + // TODO(b/136274541): Deprecate CloseStream, instead always use ResetStream to // close a stream from session. virtual void CloseStream(QuicStreamId stream_id);