RFR: 8372344: QUIC transfer may deadlock if pacing rate is too high
Daniel Jeliński
djelinski at openjdk.org
Tue Nov 25 08:33:37 UTC 2025
On Mon, 24 Nov 2025 20:27:57 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:
>> Modify the PacketTransmissionTask to update the current deadline (`now`) between loop iterations.
>>
>> This fixes the deadlock issue which happened when the next deadline was equal to the current one, but no progress could be made because the pacer quota only increases as time passes.
>>
>> No new test; the issue was extremely rare. Existing tests continue to pass.
>
> @djelinski, amazing catch! :exploding_head:
>
> I'd really appreciate it if you can share a bit about how you troubleshoot it. Which diagnostics knobs did you turn? Which log patterns made you suspect the `congestionController.updatePacer(now)` line?
@vy I observed a similar issue when I was writing the pacer code. There, the clock was actually running backwards, so it was happening more frequently, and was easier to catch using the quic:timer log. Here, adding any extra diagnostics changed the timing and made the issue go away, so I only measured the rtt and the pacing interval on a few machines, and found that at least in some cases the interval was in single nanosecond range.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28462#issuecomment-3574343060
More information about the net-dev
mailing list