RFR: 8373877: QUIC connections are removed too early
Daniel Fuchs
dfuchs at openjdk.org
Wed Dec 17 17:58:22 UTC 2025
On Wed, 17 Dec 2025 15:53:01 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> When a QUIC connection receives a CONNECTION_CLOSE frame, it is supposed to enter the draining state, where all incoming (reordered / replayed) packets are silently discarded. However, the current implementation removes the connection from the endpoint, and reordered/replayed packets trigger sending of a stateless reset instead. This patch fixes that issue.
>
> I modified the `StatelessResetReceiptTest` to verify that the connection is still registered with the endpoint after it enters the draining state. The new test fails (most of the time) without the fix, passes with the fix.
>
> Existing httpclient tests continue to pass.
Looks good to me. We now only enter draining when we receive ConnectionCloseFrame, if we haven't sent ConnectionCloseFrame already.
If we are already in draining state, nothing to do.
If we are already in closing state, then we stay in closing state.
Looks good.
-------------
Marked as reviewed by dfuchs (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/28874#pullrequestreview-3588930160
More information about the net-dev
mailing list