Commit f779fc90 authored by jan.koester's avatar jan.koester
Browse files

deb



Co-authored-by: default avatarCopilot <copilot@github.com>
parent a58e7d5e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
libnetplus (20260504+8) unstable; urgency=medium

  * QUIC: fix PTO re-queue spin loop — when sendPacket() failed (EAGAIN),
    the re-queued entry kept its original sent_time, causing
    checkLossAndRetransmit to fire PTO again immediately on the next call.
    This created an infinite hot loop that blocked the event loop.  Fix:
    reset sent_time to now and increment _pto_count for exponential
    back-off on send failure.

libnetplus (20260504+7) unstable; urgency=medium

  * QUIC: cap max_udp_payload_size to 1472 (Ethernet-safe) instead of
+5 −3
Original line number Diff line number Diff line
@@ -3714,10 +3714,12 @@ void quic::checkLossAndRetransmit() {
                    ++_pto_count;
                } else {
                    // Send failed (EAGAIN) — re-queue under original PN
                    // so the data is not permanently lost
                    // so the data is not permanently lost.  Reset sent_time
                    // to now and increment _pto_count so the next PTO check
                    // doesn't fire immediately (avoids hot spin-loop).
                    sp.sent_time = now;
                    ++_pto_count;
                    _sent_packets[old_pn] = std::move(sp);
                    std::cerr << "[QUIC-DIAG] PTO send failed, re-queued pn="
                              << old_pn << "\n";
                }
                QUIC_DBG("PTO probe: new_pn=%lu age=%.3fs pto=%.3fs",
                         (unsigned long)new_pn, age, pto_thresh);