| Index: net/quic/quic_unacked_packet_map.cc
|
| diff --git a/net/quic/quic_unacked_packet_map.cc b/net/quic/quic_unacked_packet_map.cc
|
| index 90cdc3eba63c9a36a4dc6b10416dc65424739e91..d233ad2aa94cfb1582cc4f817f0f15f93537c32d 100644
|
| --- a/net/quic/quic_unacked_packet_map.cc
|
| +++ b/net/quic/quic_unacked_packet_map.cc
|
| @@ -90,10 +90,18 @@ void QuicUnackedPacketMap::TransferRetransmissionInfo(
|
| QuicPacketNumber new_packet_number,
|
| TransmissionType transmission_type,
|
| TransmissionInfo* info) {
|
| - if (old_packet_number < least_unacked_ ||
|
| - old_packet_number > largest_sent_packet_) {
|
| - QUIC_BUG << "Old TransmissionInfo no longer exists for:"
|
| - << old_packet_number << " least_unacked:" << least_unacked_
|
| + if (old_packet_number < least_unacked_) {
|
| + if (!FLAGS_quic_always_write_queued_retransmissions) {
|
| + QUIC_BUG << "Old TransmissionInfo no longer exists for:"
|
| + << old_packet_number << " least_unacked:" << least_unacked_;
|
| + }
|
| + // This can happen when a retransmission packet is queued because of write
|
| + // blocked socket, and the original packet gets acked before the
|
| + // retransmission gets sent.
|
| + return;
|
| + }
|
| + if (old_packet_number > largest_sent_packet_) {
|
| + QUIC_BUG << "Old TransmissionInfo never existed for :" << old_packet_number
|
| << " largest_sent:" << largest_sent_packet_;
|
| return;
|
| }
|
|
|