JDK 8 RFR 8010371: getaddrinfo can fail with EAI_SYSTEM/EAGAIN, causes UnknownHostException to be thrown
Michael McMahon
michael.x.mcmahon at oracle.com
Tue Oct 1 20:25:18 UTC 2013
On 01/10/13 19:59, Brian Burkhalter wrote:
> On Oct 1, 2013, at 11:50 AM, Alan Bateman wrote:
>
>> On 01/10/2013 11:31, Brian Burkhalter wrote:
>>> Hello net-dev members,
>>>
>>> Please review this proposed fix at your convenience.
>>>
>>> Summary
>>> When looking up a host and an EAGAIN error is encountered, throw an instance of the new HostLookupException subclass of UnknownHostException.
>>>
>>> Issue
>>> https://bugs.openjdk.java.net/browse/JDK-8010371
>>>
>>> Webrev
>>> http://cr.openjdk.java.net/~bpb/8010371
>>>
>>>
>> So is getaddrinfo returning EAGAIN or is it failing with EAI_SYSTEM and errno set to EAGAIN?
> It seems a bit unclear to me and to depend on which system one is on. There is also the possibility apparently of it returning EAI_AGAIN. It might be best to test both the return value and if that is EAI_SYSTEM to test errno.
>
>> I also wonder if the EAGAIN means the underlying syscall has been interrupted, in which case the normal thing to do is to retry.
> The approach I initially was going to take was to retry once after a short wait and then fail with the proposed exception if the retry failed.
I'm not sure about the short wait. I know the submitter claims that it
worked after 50ms, but I don't
think we could generalise that behavior in the library. Maybe, there is
value in repeating immediately, though
it is less likely the temporary condition will have resolved.
Michael
> This webrev was intended to provoke discussion such as this is the first time I have looked at this part of the code base and it is not clear how to actually test this situation.
>
> Brian
More information about the core-libs-dev
mailing list