Deprecate gfe2_reloadable_flag_quic_fail_on_empty_ack

PiperOrigin-RevId: 831415947
diff --git a/quiche/common/quiche_feature_flags_list.h b/quiche/common/quiche_feature_flags_list.h
index 2ac619a..aea7910 100755
--- a/quiche/common/quiche_feature_flags_list.h
+++ b/quiche/common/quiche_feature_flags_list.h
@@ -39,7 +39,6 @@
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_server_on_wire_ping, true, true, "If true, enable server retransmittable on wire PING.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_enable_version_rfcv2, false, false, "When true, support RFC9369.")
 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_fail_on_empty_ack, true, true, "If true, closes the connection if there are no packets in the ack frame. This is always the result of a protocol violation by the peer.")
 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_timeouts, true, true, "If true, postpone setting handshake timeout to infinite to handshake complete.")
 QUICHE_FLAG(bool, quiche_reloadable_flag_quic_limit_new_streams_per_loop_2, true, true, "If true, when the peer sends connection options \\\'SLP1\\\', \\\'SLP2\\\' and \\\'SLPF\\\', internet facing GFEs will only allow a limited number of new requests to be processed per event loop, and postpone the rest to the following event loops. Also guard QuicConnection to iterate through all decrypters at each encryption level to get cipher id for a request.")
diff --git a/quiche/quic/core/quic_connection.cc b/quiche/quic/core/quic_connection.cc
index b765488..aa30ad6 100644
--- a/quiche/quic/core/quic_connection.cc
+++ b/quiche/quic/core/quic_connection.cc
@@ -5728,9 +5728,7 @@
         largest_packet_peer_knows_is_acked);
     if (uber_received_packet_manager_.IsAckFrameEmpty(
             QuicUtils::GetPacketNumberSpace(
-                last_received_packet_info_.decrypted_level)) &&
-        GetQuicReloadableFlag(quic_fail_on_empty_ack)) {
-      QUIC_RELOADABLE_FLAG_COUNT(quic_fail_on_empty_ack);
+                last_received_packet_info_.decrypted_level))) {
       // A packet N arrived from the peer, and was ACKed. Then a packet M < N
       // arrived acknowledging the locally generated ACK. This implies that
       // the packet numbers are not increasing. Or, M was sent with an
diff --git a/quiche/quic/core/quic_connection_test.cc b/quiche/quic/core/quic_connection_test.cc
index e65f82a..a173009 100644
--- a/quiche/quic/core/quic_connection_test.cc
+++ b/quiche/quic/core/quic_connection_test.cc
@@ -18100,7 +18100,6 @@
   if (!version().UsesTls()) {
     return;
   }
-  SetQuicReloadableFlag(quic_fail_on_empty_ack, true);
   // Two packets arrive to trigger an ACK.
   QuicPacketNumber largest_packet_sent;
   EXPECT_CALL(connection_, OnSerializedPacket)
@@ -18134,7 +18133,6 @@
   if (!version().UsesTls()) {
     return;
   }
-  SetQuicReloadableFlag(quic_fail_on_empty_ack, true);
   set_perspective(Perspective::IS_SERVER);
   connection_.RemoveEncrypter(ENCRYPTION_FORWARD_SECURE);
 
@@ -18164,7 +18162,6 @@
   EXPECT_CALL(visitor_, OnConnectionClosed);
   ProcessFramesPacketAtLevel(1, peer_frames, ENCRYPTION_INITIAL);
 
-  // If quic_fail_on_empty_ack is false, this will trigger a BUG.
   connection_.SendCryptoData(ENCRYPTION_INITIAL, /*length=*/1000, /*offset=*/0);
   TestConnectionCloseQuicErrorCode(IETF_QUIC_PROTOCOL_VIOLATION);
 }