Enable --quic_spdy_stream_check_connected_after_process_input.
PiperOrigin-RevId: 470031628
diff --git a/quiche/quic/core/http/quic_spdy_stream.cc b/quiche/quic/core/http/quic_spdy_stream.cc
index 056514c..9a6681e 100644
--- a/quiche/quic/core/http/quic_spdy_stream.cc
+++ b/quiche/quic/core/http/quic_spdy_stream.cc
@@ -828,6 +828,13 @@
QuicByteCount processed_bytes = decoder_.ProcessInput(
reinterpret_cast<const char*>(iov.iov_base), iov.iov_len);
is_decoder_processing_input_ = false;
+ if (GetQuicReloadableFlag(
+ quic_spdy_stream_check_connected_after_process_input) &&
+ !session()->connection()->connected()) {
+ QUIC_RELOADABLE_FLAG_COUNT(
+ quic_spdy_stream_check_connected_after_process_input);
+ return;
+ }
sequencer_offset_ += processed_bytes;
if (blocked_on_decoding_headers_) {
return;
diff --git a/quiche/quic/core/quic_flags_list.h b/quiche/quic/core/quic_flags_list.h
index d38a473..5c0dfdd 100644
--- a/quiche/quic/core/quic_flags_list.h
+++ b/quiche/quic/core/quic_flags_list.h
@@ -27,6 +27,8 @@
QUIC_FLAG(quic_reloadable_flag_quic_enable_mtu_discovery_at_server, false)
// If true, QuicGsoBatchWriter will support release time if it is available and the process has the permission to do so.
QUIC_FLAG(quic_restart_flag_quic_support_release_time_for_gso, false)
+// If true, QuicSpdyStream::OnDataAvailable will check if connection is still connected after HttpDecoder::ProcessInput.
+QUIC_FLAG(quic_reloadable_flag_quic_spdy_stream_check_connected_after_process_input, true)
// If true, account added padding when coalesced packets get buffered.
QUIC_FLAG(quic_reloadable_flag_quic_fix_bytes_accounting_for_buffered_coalesced_packets, true)
// If true, ack frequency frame can be sent from server to client.