RFR: 8373877: QUIC connections are removed too early

Daniel Jeliński djelinski at openjdk.org
Thu Dec 18 13:21:21 UTC 2025


On Wed, 17 Dec 2025 17:56:06 GMT, Daniel Fuchs <dfuchs 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.

Thanks @dfuch for the review.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/28874#issuecomment-3670253507


More information about the net-dev mailing list