RFR: 8372409: java/net/httpclient/http3/H3MultipleConnectionsToSameHost.java timed out during warmup

Daniel Fuchs dfuchs at openjdk.org
Tue Nov 25 14:44:04 UTC 2025


The issue here occurs when the connection gets closed just before the `Http3ExchangeImpl` gets created. In that case the h3 stream reference counter gets incremented, but due to the connection being already closed Http3ExchangeImpl::close will not be invoked, even though the CF returned to the user has been correctly completed with the appropriate exception. Not calling `Http3ExchangeImpl::close` after the reference counter has been incremented prevents that reference counter from being properly decremented. This in turn causes `HttpClient::close()` to wait forever.

The fix is to double-check that the connection is still open after having added the exchange to the connection's exchange map. If the connection is still opened, we can start the exchange. Otherwise we mark it as unprocessed and close it.

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

Commit messages:
 - 8372409: java/net/httpclient/http3/H3MultipleConnectionsToSameHost.java timed out during warmup

Changes: https://git.openjdk.org/jdk/pull/28494/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28494&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8372409
  Stats: 26 lines in 2 files changed: 21 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/28494.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28494/head:pull/28494

PR: https://git.openjdk.org/jdk/pull/28494


More information about the net-dev mailing list