8371576: HttpURLConnection fails to connect when first DNS-resolved address is unreachable
Hyunsu Eun
ehs122100 at gmail.com
Sun Jan 18 15:34:41 UTC 2026
Hi,
I'd like to contribute to JDK-8371576 [1], where HttpURLConnection fails immediately
if the first DNS-resolved IP address is unreachable, even when other valid addresses exist.
I analyzed the issue and identified the root cause in NetworkClient.doConnect():
- It uses new InetSocketAddress(server, port), which only attempts the first resolved address
- This affects HttpURLConnection, FTP, and other users of NetworkClient
- The modern HttpClient has a similar issue in PlainHttpConnection.connectAsync()
Proposed fix:
- Explicitly resolve all addresses via InetAddress.getAllByName()
- Attempt connections sequentially until one succeeds
- Distribute the timeout across attempts to preserve existing behavior
- Introduce a system property: jdk.net.enableDNSFallback (default: true)
This would address the legacy APIs. Since the modern HttpClient appears to have the same issue,
would you prefer to fix both in a single change or handle them separately?
I'm happy to work on this if the issue is available.
Thanks,
Hyunsu Eun
[1] https://bugs.openjdk.org/browse/JDK-8371576
More information about the net-dev
mailing list