logo

When "idle" isn't idle: how a Linux kernel optimization became a QUIC bug

ID: cd2ad3e3-f329-5983-a263-83f646752bae

STIX ID: report--cd2ad3e3-f329-5983-a263-83f646752bae

Feed Name: Cloudflare Blog

Date Published: 2026-05-12

Date Updated: 2026-05-12

Author: Esteban Carisimo

...
...

This report analyzes a functional bug in the CUBIC congestion-control implementation in Cloudflare's open-source quiche QUIC library: under heavy early packet loss followed by recovery, an idle-period adjustment used the last send time rather than the last ACK time, advancing the CUBIC epoch incorrectly and causing the congestion window to become permanently pinned at the two-packet minimum. The authors reproduce the failure in a deterministic test (30% loss for the first 2s), instrument qlogs to observe rapid recovery/avoidance oscillations tied to RTT, identify the root cause (measuring idle from the wrong moment), and implement a minimal fix—track last_ack_time and use max(last_ack_time, last_sent_time)—which restores normal cwnd growth and test pass rates.

Your team is not currently subscribed to this feed. You must subscribe to it in order to see this post.