From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp56.i.mail.ru (smtp56.i.mail.ru [217.69.128.36]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 887F04696C3 for ; Sun, 26 Apr 2020 18:46:30 +0300 (MSK) Date: Sun, 26 Apr 2020 18:46:23 +0300 From: Alexander Turenko Message-ID: <20200426154623.3trqdm7xhly6rxwe@tkn_work_nb> References: <20200312102434.97300-1-roman.habibov@tarantool.org> <20200312102434.97300-3-roman.habibov@tarantool.org> <20200329090718.GD328@tarantool.org> <20200416102750.GA3110@tarantool.org> <451C0FA3-84FE-456A-86A2-77240532C63B@tarantool.org> <20200424171844.GE112@tarantool.org> <05B1078E-1CD3-44D7-9CC7-D8CE7399FD48@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <05B1078E-1CD3-44D7-9CC7-D8CE7399FD48@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v2 2/2] lua: return getaddrinfo() errors List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Roman Khabibov Cc: tarantool-patches@dev.tarantool.org On Sun, Apr 26, 2020 at 06:16:29AM +0300, Roman Khabibov wrote: > > > > On Apr 24, 2020, at 20:18, Sergey Ostanevich wrote: > > > > On 24 апр 14:42, Roman Khabibov wrote: > >> Hi! Thanks for the review. > >> > >>> On Apr 16, 2020, at 13:27, Sergey Ostanevich 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.