False deprecate --gfe2_reloadable_flag_quic_fix_ignore_read_data_when_unblocked as it does not work per b/488057588#comment14.

PiperOrigin-RevId: 886958346
diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index ed32c81..cc30164 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -44,7 +44,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enobufs_blocked, true, true, "If true, ENOBUFS socket errors are reported as socket blocked instead of socket failure.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_fin_before_completed_http_headers, false, true, "If true, close the connection with error if FIN is received before finish receiving the whole HTTP headers.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_fix_gap_filling_ack_logic, false, false, "If true, fix the gap filling ack logic in QuicAckFrame.")
-QUICHE_FLAG(bool, quiche_reloadable_flag_quic_fix_ignore_read_data_when_unblocked, false, false, "If true, correctly handle ignore_read_data case when sequencer gets unblocked.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_fix_timeouts, true, true, "If true, postpone setting handshake timeout to infinite to handshake complete.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_include_datagrams_in_willing_to_write, false, false, "If true, checks for queued datagrams when determining if a connection is willing to write.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_move_clock_now, false, false, "If true, move the call to clock.Now() in QuicPacketReader::ReadAndDispatchPackets to after socket_api_.ReadMultiplePackets().")
diff --git a/quiche/quic/core/http/quic_spdy_stream_test.cc b/quiche/quic/core/http/quic_spdy_stream_test.cc
index 3038037..11de5f4 100644
--- a/quiche/quic/core/http/quic_spdy_stream_test.cc
+++ b/quiche/quic/core/http/quic_spdy_stream_test.cc
@@ -3835,66 +3835,6 @@
   }
 }
 
-// Regression test for b/488057588.
-TEST_P(QuicSpdyStreamTest, ReadSideNotClosedAfterStopReading) {
-  if (!IsIetfQuic()) {
-    return;
-  }
-  SetQuicReloadableFlag(quic_clear_body_manager_along_with_sequencer, true);
-
-  Initialize(kShouldProcessData);
-
-  QuicHeaderList headers = ProcessHeaders(false, headers_);
-  stream_->ConsumeHeaderList();
-
-  // In Envoy QUIC, application can stop processing data before getting read
-  // blocked.
-  stream_->set_should_process_data(false);
-  std::string body = "this is the body";
-  std::string data = DataFrame(body);
-  QuicStreamOffset offset = 0;
-  QuicStreamFrame frame1(GetNthClientInitiatedBidirectionalId(0), /*fin=*/false,
-                         offset, data);
-  offset += data.size();
-  stream_->OnStreamFrame(frame1);
-  EXPECT_TRUE(stream_->sequencer()->HasBytesToRead());
-  EXPECT_TRUE(QuicSpdyStreamPeer::BodyManager(stream_).HasBytesToRead());
-
-  // In Envoy QUIC, StopReading can be called after local reset.
-  stream_->StopReading();
-  // Sequencer is not closed but the bytes in body_manager is cleared.
-  EXPECT_FALSE(stream_->sequencer()->IsClosed());
-  EXPECT_FALSE(QuicSpdyStreamPeer::BodyManager(stream_).HasBytesToRead());
-
-  // QUIC gets blocked.
-  stream_->sequencer()->SetBlockedUntilFlush();
-
-  // FIN does not close the read side since the stream is blocked.
-  QuicStreamFrame frame2(GetNthClientInitiatedBidirectionalId(0), /*fin=*/true,
-                         offset, "second body");
-  stream_->OnStreamFrame(frame2);
-  EXPECT_FALSE(stream_->sequencer()->IsClosed());
-
-  // Because sequencer has bytes to read, On DataAvailable is called.
-  // However, since neither body_manager has bytes to read nor sequencer is
-  // closed,  OnBodyAvailable is not called to close the read side when
-  // SetUnblocked is called.
-  EXPECT_FALSE(QuicSpdyStreamPeer::BodyManager(stream_).HasBytesToRead());
-  EXPECT_FALSE(stream_->sequencer()->IsClosed());
-  EXPECT_TRUE(stream_->sequencer()->HasBytesToRead());
-
-  // Application gets unblocked.
-  stream_->set_should_process_data(true);
-  // QUIC gets unblocked.
-  stream_->sequencer()->SetUnblocked();
-
-  if (GetQuicReloadableFlag(quic_fix_ignore_read_data_when_unblocked)) {
-    EXPECT_TRUE(stream_->read_side_closed());
-  } else {
-    EXPECT_FALSE(stream_->read_side_closed());
-  }
-}
-
 }  // namespace
 }  // namespace test
 }  // namespace quic
diff --git a/quiche/quic/core/quic_stream_sequencer.cc b/quiche/quic/core/quic_stream_sequencer.cc
index dcb6252..13a1668 100644
--- a/quiche/quic/core/quic_stream_sequencer.cc
+++ b/quiche/quic/core/quic_stream_sequencer.cc
@@ -24,7 +24,6 @@
 #include "quiche/quic/platform/api/quic_flags.h"
 #include "quiche/quic/platform/api/quic_logging.h"
 #include "quiche/quic/platform/api/quic_stack_trace.h"
-#include "quiche/common/platform/api/quiche_flag_utils.h"
 
 namespace quic {
 
@@ -266,16 +265,6 @@
 
 void QuicStreamSequencer::SetUnblocked() {
   blocked_ = false;
-  if (GetQuicReloadableFlag(quic_fix_ignore_read_data_when_unblocked)) {
-    QUICHE_RELOADABLE_FLAG_COUNT_N(quic_fix_ignore_read_data_when_unblocked, 1,
-                                   2);
-    if (ignore_read_data_) {
-      QUICHE_RELOADABLE_FLAG_COUNT_N(quic_fix_ignore_read_data_when_unblocked,
-                                     2, 2);
-      FlushBufferedFrames();
-      return;
-    }
-  }
   if (IsClosed() || HasBytesToRead()) {
     stream_->OnDataAvailable();
   }