Deprecate --gfe2_reloadable_flag_quic_fix_on_stream_reset. PiperOrigin-RevId: 466355869
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc index ed8ff04..056514c 100644 --- a/quiche/quic/core/http/quic_spdy_stream.cc +++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -732,31 +732,16 @@ return; } - // TODO(bnc): Merge the two blocks below when deprecating - // quic_fix_on_stream_reset. - if (frame.error_code != QUIC_STREAM_NO_ERROR) { - if (VersionUsesHttp3(transport_version()) && !fin_received() && - spdy_session_->qpack_decoder()) { - spdy_session_->qpack_decoder()->OnStreamReset(id()); - qpack_decoded_headers_accumulator_.reset(); - } - - QuicStream::OnStreamReset(frame); - return; + if (VersionUsesHttp3(transport_version()) && !fin_received() && + spdy_session_->qpack_decoder()) { + spdy_session_->qpack_decoder()->OnStreamReset(id()); + qpack_decoded_headers_accumulator_.reset(); } - if (VersionUsesHttp3(transport_version())) { - QUIC_CODE_COUNT(quic_fix_on_stream_reset); - if (GetQuicReloadableFlag(quic_fix_on_stream_reset)) { - QUIC_RELOADABLE_FLAG_COUNT(quic_fix_on_stream_reset); - if (!fin_received() && spdy_session_->qpack_decoder()) { - spdy_session_->qpack_decoder()->OnStreamReset(id()); - qpack_decoded_headers_accumulator_.reset(); - } - - QuicStream::OnStreamReset(frame); - return; - } + if (VersionUsesHttp3(transport_version()) || + frame.error_code != QUIC_STREAM_NO_ERROR) { + QuicStream::OnStreamReset(frame); + return; } QUIC_DVLOG(1) << ENDPOINT
diff --git a/quiche/quic/core/http/quic_spdy_stream_test.cc b/quiche/quic/core/http/quic_spdy_stream_test.cc index ba4137e..6255251 100644 --- a/quiche/quic/core/http/quic_spdy_stream_test.cc +++ b/quiche/quic/core/http/quic_spdy_stream_test.cc
@@ -1195,7 +1195,7 @@ stream_->OnStreamReset(QuicRstStreamFrame( kInvalidControlFrameId, stream_->id(), QUIC_STREAM_NO_ERROR, 0)); - if (GetQuicReloadableFlag(quic_fix_on_stream_reset) && UsesHttp3()) { + if (UsesHttp3()) { // RESET_STREAM should close the read side but not the write side. EXPECT_TRUE(stream_->read_side_closed()); EXPECT_FALSE(stream_->write_side_closed()); @@ -3039,20 +3039,9 @@ QuicRstStreamFrame rst_frame2(kInvalidControlFrameId, stream_->id(), QUIC_STREAM_NO_ERROR, /* bytes_written = */ 0); - if (GetQuicReloadableFlag(quic_fix_on_stream_reset)) { - stream_->OnStreamReset(rst_frame2); - EXPECT_TRUE(stream_->read_side_closed()); - EXPECT_FALSE(stream_->write_side_closed()); - } else { - EXPECT_CALL( - *session_, - MaybeSendRstStreamFrame( - stream_->id(), - QuicResetStreamError::FromInternal(QUIC_RST_ACKNOWLEDGEMENT), _)); - EXPECT_QUIC_BUG( - stream_->OnStreamReset(rst_frame2), - "The stream should've already sent RST in response to STOP_SENDING"); - } + stream_->OnStreamReset(rst_frame2); + EXPECT_TRUE(stream_->read_side_closed()); + EXPECT_FALSE(stream_->write_side_closed()); } TEST_P(QuicSpdyStreamTest, ProcessOutgoingWebTransportHeadersDatagramDraft04) {
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h index fd44242..c2ff08a 100644 --- a/quiche/quic/core/quic_flags_list.h +++ b/quiche/quic/core/quic_flags_list.h
@@ -35,8 +35,6 @@ QUIC_FLAG(quic_reloadable_flag_quic_can_send_ack_frequency, true) // If true, allow client to enable BBRv2 on server via connection option \'B2ON\'. QUIC_FLAG(quic_reloadable_flag_quic_allow_client_enabled_bbr_v2, true) -// If true, close read side but not write side in QuicSpdyStream::OnStreamReset(). -QUIC_FLAG(quic_reloadable_flag_quic_fix_on_stream_reset, true) // If true, close the connection if a crypto send buffer exceeds its size limit. QUIC_FLAG(quic_reloadable_flag_quic_bounded_crypto_send_buffer, false) // If true, default-enable 5RTO blachole detection.