On Tue, 25 Nov 2025 14:38:01 GMT, Daniel Fuchs <[email protected]> wrote:
> 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. This pull request has now been integrated. Changeset: 785ca67e Author: Daniel Fuchs <[email protected]> URL: https://git.openjdk.org/jdk/commit/785ca67e46c762ed0ffaeda1e26e5f90276181e8 Stats: 26 lines in 2 files changed: 21 ins; 0 del; 5 mod 8372409: java/net/httpclient/http3/H3MultipleConnectionsToSameHost.java timed out during warmup Reviewed-by: djelinski ------------- PR: https://git.openjdk.org/jdk/pull/28494
