[Tarantool-patches] [PATCH v2 2/2] lua: return getaddrinfo() errors

Alexander Turenko alexander.turenko at tarantool.org
Sun Apr 26 18:46:23 MSK 2020


On Sun, Apr 26, 2020 at 06:16:29AM +0300, Roman Khabibov wrote:
> 
> 
> > On Apr 24, 2020, at 20:18, Sergey Ostanevich <sergos at tarantool.org> wrote:
> > 
> > On 24 апр 14:42, Roman Khabibov wrote:
> >> Hi! Thanks for the review.
> >> 
> >>> On Apr 16, 2020, at 13:27, Sergey Ostanevich <sergos at tarantool.org> wrote:
> >>> 
> >>> On 06 апр 05:08, Roman Khabibov wrote:
> >>>>>> +test_run:cmd("setopt delimiter ';'")
> >>>>>> +function check_err(err)
> >>>>>> +    if err == 'getaddrinfo: nodename nor servname provided, or not known' or
> >>>>>> +       err == 'getaddrinfo: Servname not supported for ai_socktype' or
> >>>>>> +       err == 'getaddrinfo: Name or service not known' or
> >>>>>> +       err == 'getaddrinfo: hostname nor servname provided, or not known' or
> >>>>>> +       err == 'getaddrinfo: Temporary failure in name resolution' or
> >>>>>> +       err == 'getaddrinfo: Name could not be resolved at this time' then
> >>>>>> +        return true
> >>>>>> +    end
> >>>>>> +    return false
> >>>>>> +end;
> >>>>> I really doubt that different error messages from the set above will appear 
> >>>>> for the same error on different platforms. Could you please check for particular 
> >>>>> output for each case you trigger below?
> >>>> Look at that:
> >>>> https://travis-ci.org/github/tarantool/tarantool/jobs/546115892#L3581 - Linux failed
> >>>> https://travis-ci.org/github/tarantool/tarantool/jobs/546115893#L3100 - macOS isn’t
> >>>> 
> >>> 
> >>> Exactly, this means for the error EAI_NONAME those OSes have differnet
> >>> messages. But you've put different errors in one bunch - I meant it
> >>> should never return 'Temporary failure in name resolution' as a result
> >>> for EAI_SERVICE, right? 
> >>> 
> >>> Are you testing for correct error returned for a particular case?
> >> Don’t understand the question. I just check error messages that appeared
> >> after travis/gitlab testing.
> >> 
> > Different errors makes different messages. 
> > Same error can make different messages on different platforms. 
> > 
> > You put both into one: you don't care about what exact error came to
> > you, right? 
> Right. The most important thing here is that the error is from getaddrinfo.

Here I disagree. We want to verify that an error from a specific set of
errors occurs. AFAIR, three errors are possible when trying to resolve a
non-existent hostname: EAI_NONAME, EAI_AGAIN (and, as I see from the
messages, EAI_SERVICE; maybe it is when ipv6 is semi-configured like on
travis-ci).

Actual EAI_* error for the test depends on network conditions and host
configuration, messages are platform dependent.

See also:
https://lists.tarantool.org/pipermail/tarantool-patches/2019-August/003399.html

Roman, I suggest to clarify things that Sergos asked in the comments
near to the check: if it is not clear for a reviewer, then a future
reader may hang with it too.

And, please (AFAIR I already asked), comment which message is for which
EAI_* constant.

WBR, Alexander Turenko.


More information about the Tarantool-patches mailing list