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