RFR: 8305906: HttpClient may use incorrect key when finding pooled HTTP/2 connection for IPv6 address [v2]

Daniel Jeliński djelinski at openjdk.org
Thu Apr 20 11:15:53 UTC 2023


On Thu, 20 Apr 2023 11:04:53 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:

>> Can I please get a review of this change which proposes to fix the issue reported in https://bugs.openjdk.org/browse/JDK-8305906?
>> 
>> As noted in that issue, when IPv6 hosts are involved, the HttpClient on certain occasions can end up caching the connection with a key which doesn't match with the key which is then used in a subsequent request against the same target host. 
>> 
>> The commit in this PR now wraps the IPv6 address in a square bracket consistently so that the correct key is used both during storing the connection in the pool and when looking up.
>> 
>> A new jtreg test has been added which reproduces this issue without the fix and verifies the fix.
>
> Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
> 
>   use HttpRequestImpl.getAddress() to lookup cache key instead of HttpRequestImpl.getURI()

Thanks for the fix, that looks better.

Now that we always use `InetSocketAddress` to build the cache key, do we still need to wrap the hostnames in brackets?

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

PR Comment: https://git.openjdk.org/jdk/pull/13456#issuecomment-1516145164


More information about the net-dev mailing list