Add QUIC_BUG_IF on empty opportunistic ACKs

Based on the discussion in cl/249218514, we'd rather not hide a potential bug in the codebase. So this CL adds a QUIC_BUG_IF with detailed information in case this happens again down the road.

gfe-relnote: no behavior change, only add QUIC_BUG_IF, not flag protected
PiperOrigin-RevId: 249624687
Change-Id: Ie3c09687aa7e824f5bf82fbe73c3e974291051a0
diff --git a/quic/core/quic_connection.cc b/quic/core/quic_connection.cc
index 2260766..4e93fdf 100644
--- a/quic/core/quic_connection.cc
+++ b/quic/core/quic_connection.cc
@@ -2413,7 +2413,14 @@
   ResetAckStates();
 
   QUIC_DVLOG(1) << ENDPOINT << "Bundle an ACK opportunistically";
-  frames.push_back(GetUpdatedAckFrame());
+  QuicFrame updated_ack_frame = GetUpdatedAckFrame();
+  QUIC_BUG_IF(updated_ack_frame.ack_frame->packets.Empty())
+      << ENDPOINT << "Attempted to opportunistically bundle an empty "
+      << QuicUtils::EncryptionLevelToString(encryption_level_) << " ACK, "
+      << (has_pending_ack ? "" : "!") << "has_pending_ack, stop_waiting_count_ "
+      << stop_waiting_count_;
+  frames.push_back(updated_ack_frame);
+
   if (!no_stop_waiting_frames_) {
     QuicStopWaitingFrame stop_waiting;
     PopulateStopWaitingFrame(&stop_waiting);