RFR(s): 8228580: DnsClient TCP socket timeout

Pavel Rappo pavel.rappo at oracle.com
Wed Sep 11 14:56:47 UTC 2019


Sure, from https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/jndi-dns.html:

"Each lookup is initially performed using UDP. If the response is too long to be returned in a UDP packet without being truncated, the lookup is repeated using TCP."

and

"com.example.jndi.dns.timeout.initial
com.example.jndi.dns.timeout.retries

These properties are used to alter the timeout-related defaults that the DNS provider uses when submitting UDP queries. The DNS provider submits UDP queries using the following exponential backoff algorithm. The provider submits a query to a DNS server and waits for a response to arrive within a timeout period (1 second by default). If it receives no response within the timeout period, it queries the next server, and so on. If the provider receives no response from any server, it doubles the timeout period and repeats the process of submitting the query to each server, up to a maximum number of retries (4 by default).

The "com.example.jndi.dns.timeout.initial" property, if set, specifies the number of milliseconds to use as the initial timeout period (i.e., before any doubling). If this property has not been set, the default initial timeout is 1000 milliseconds.

The "com.example.jndi.dns.timeout.retries" property, if set, specifies the number of times to retry each server using the exponential backoff algorithm described previously. If this property has not been set, the default number of retries is 4."

I cannot seem to find a newer version of that document though.

> On 11 Sep 2019, at 14:58, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> 
> On 11/09/2019 13:26, Pavel Rappo wrote:
>> I'm happy with the overall changeset. I have (once again) made some tiny changes, you can see them here:
>> 
>>     http://cr.openjdk.java.net/~prappo/8228580/webrev.02/
>> 
>> If you are okay with them, then we wait for a *R*eviewer. If the Reviewer(s) are okay with them, we push. For the record, I'm not really happy with how we used the DNSTestBase/TestBase infrastructure, however I'm totally fine with the retrying logic.
>> 
> Would it be possible to write a clear description for the com.sun.jndi.dns.timeout and com.sun.jndi.dns.retries properties? The current description in the JNDI docs describes them for UDP only. I realize this is may be out of date but new descriptions would be useful when the docs are updated. Also I think would be useful for potential Reviewers.
> 
> -Alan



More information about the core-libs-dev mailing list