[JDK-8257080] Java does not try all DNS results when opening a socket

Chris Hegarty chris.hegarty at oracle.com
Tue Dec 22 17:27:18 UTC 2020


I believe that 8170568 [1] better describes the issue being discussed
here. So, unless there are any objections, I will close 8257080 as a
duplicate of 8170568.

---

There was some renewed interest in this area back in mid 2019, when we
touched on it (and several other issues) relating to IPv6 [2] (yes, I
know that this is not an IPv6-only specific issue).

This is not a new issue, but unfortunately not much progress has been
made in this area (beyond some embedded or mobile platforms doing their
own thing). I remember discussing this with some folks while at the 80th
IETF meeting in Prague, in 2011. Specifically at the time, I prototyped
an implementation of Happy Eyeballs [3] at the java.net.Socket level. If
memory serves me correct, there were some not-so-straightforward
specification issues that would need to worked out, especially relating
to exceptions and failures (I don't have the details to hand).

Things have moved on a lot since then, for example I see no reason why 
the Java HTTP Client, that uses non-blocking NIO socket channels, could
not do it's own multi-connect thing. This is clearly unrelated to
whatever, if anything, is done for java.net.Socket.connect(String,int).

-Chris.

[1] https://bugs.openjdk.java.net/browse/JDK-8170568
[2] https://mail.openjdk.java.net/pipermail/net-dev/2019-April/012371.html
[3] https://tools.ietf.org/html/rfc6555


> On 17 Dec 2020, at 14:39, Chris Hegarty <chris.hegarty at oracle.com> wrote:
> 
> Looping in a prior relevant issue in JIRA: 
> 
> https://bugs.openjdk.java.net/browse/JDK-8170568 - 
> Improve address selection for network clients
> 
> -Chris.
> 
>> On 17 Dec 2020, at 13:45, Daniel Fuchs <daniel.fuchs at oracle.com> wrote:
>> 
>> Hi Simone,
>> 
>> We are investigating introducing a Service Provider interface
>> which would allow an application to replace the default
>> built-in implementation that blocks inside the kernel.
>> 
>> There is no plan to introduce any public asynchronous API to perform
>> address resolution at this point. With the advent of Loom and
>> virtual threads I'm not sure there would be much motivation for
>> that anyway.
>> 
>> best regards,
>> 
>> -- daniel
>> 
>> On 16/12/2020 19:59, Simone Bordet wrote:
>>> Hi,
>>> On Wed, Dec 16, 2020 at 5:55 PM Aleks Efimov <aleksej.efimov at oracle.com> wrote:
>>>> 
>>>> Hi Benjamin,
>>>> 
>>>> As Alan stated I'm working on adding an SPI [1] which will provide a
>>>> possibility to alter how host names and IP addresses are resolved by JDK
>>>> platform.
>>>> I believe it would be possible to use this mechanism for addressing
>>>> issue described in JDK-8257080.
>>> Is it hopefully going to be non-blocking?
>> 
> 



More information about the net-dev mailing list