In bandwidth_sampler.cc, within OnPacketAcknowledgedInner, the following ERROR is logged. Could you please explain in detail why this is possible? Additionally, I noticed a TODO in the code—is it related to this issue? Could you please describe all potential causes that might trigger this?
// During the slope calculation, ensure that ack time of the current packet is
// always larger than the time of the previous packet, otherwise division by
// zero or integer underflow can occur.
if (ack_time <= a0.ack_time) {
// TODO(wub): Compare this code count before and after fixing clock jitter
// issue.
if (a0.ack_time == sent_packet.sent_time()) {
// This is the 1st packet after quiescense.
QUIC_CODE_COUNT_N(quic_prev_ack_time_larger_than_current_ack_time, 1, 2);
} else {
QUIC_CODE_COUNT_N(quic_prev_ack_time_larger_than_current_ack_time, 2, 2);
}
QUIC_LOG_EVERY_N_SEC(ERROR, 60)
<< "Time of the previously acked packet:"
<< a0.ack_time.ToDebuggingValue()
<< " is larger than the ack time of the current packet:"
<< ack_time.ToDebuggingValue()
<< ". acked packet number:" << packet_number
<< ", total_bytes_acked_:" << total_bytes_acked_
<< ", overestimate_avoidance_:" << overestimate_avoidance_
<< ", sent_packet:" << sent_packet;
return BandwidthSample();
}
In bandwidth_sampler.cc, within OnPacketAcknowledgedInner, the following ERROR is logged. Could you please explain in detail why this is possible? Additionally, I noticed a TODO in the code—is it related to this issue? Could you please describe all potential causes that might trigger this?