gfe-relnote: In QUIC, close connection if CreateAndSerializeStreamFrame fails. Protected by gfe2_reloadable_flag_quic_close_connection_on_failed_consume_data_fast_path.

PiperOrigin-RevId: 279377730
Change-Id: I960645f04b35094b305b388b9c6ec984feb1b224
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index b64ed3f..f07394d 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -1221,6 +1221,19 @@
     CreateAndSerializeStreamFrame(id, write_length, total_bytes_consumed,
                                   offset + total_bytes_consumed, fin,
                                   next_transmission_type_, &bytes_consumed);
+    if (GetQuicReloadableFlag(
+            quic_close_connection_on_failed_consume_data_fast_path)) {
+      QUIC_RELOADABLE_FLAG_COUNT(
+          quic_close_connection_on_failed_consume_data_fast_path);
+      if (bytes_consumed == 0) {
+        const std::string error_details =
+            "Failed in CreateAndSerializeStreamFrame.";
+        QUIC_BUG << error_details;
+        delegate_->OnUnrecoverableError(QUIC_FAILED_TO_SERIALIZE_PACKET,
+                                        error_details);
+        break;
+      }
+    }
     total_bytes_consumed += bytes_consumed;
   }