RFR(s): 8228580: DnsClient TCP socket timeout

Pavel Rappo pavel.rappo at oracle.com
Thu Sep 5 15:02:43 UTC 2019


I think we are almost there. What do you think of the following incremental (i.e. on top of your latest webrev) change?

    http://cr.openjdk.java.net/~prappo/8228580/webrev.01/

I fixed a couple of trivial typos and addressed the socket relinquishing issue. Initializing a socket is not an atomic "all-or-nothing" operation now. Someone needs to take care of the socket in case things go not as planned.

-Pavel

> On 5 Sep 2019, at 11:20, Milan Mimica <milan.mimica at gmail.com> wrote:
> 
> On Wed, 4 Sep 2019 at 20:32, Florian Weimer <fweimer at redhat.com> wrote:
>> 
>> If you use the initial UDP timeout (one second, I think), the kernel
>> will not complete the TCP handshake if the initial SYN segment is lost
>> because the retransmit delay during the handshake is longer than that.
> 
> We could set a higher timeout value, but I would not prefer that.
> After all, 1 second is just default value, and can be changed. If the
> user wants us to give up on DNS query after the specified timeout then
> lets do just that. True, some queries that previously worked might
> start failing, but that is true even for slow socket.read()
> operations.
> 
> New webrev: http://cr.openjdk.java.net/~mmimica/8228580/webrev.01/
> 
> * simplified test with no thread (nice catch Pavel)
> * set connect timeout and account for it
> 
> -- 
> Milan Mimica



More information about the core-libs-dev mailing list