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;
}