[Tarantool-patches] [PATCH v2] test: flaky box/net.box_wait_connected_gh-3856

Kirill Yukhin kyukhin at tarantool.org
Fri Jun 26 12:52:10 MSK 2020


Hello,

On 20 июн 07:50, Alexander V. Tikhonov wrote:
> From: Alexander Turenko <alexander.turenko at tarantool.org>
> 
> Found issue running test on FreeBSD VBox host:
> 
>  [011] --- box/net.box_wait_connected_gh-3856.result	Mon Jun 15 09:39:49 2020
>  [011] +++ box/net.box_wait_connected_gh-3856.reject	Fri May  8 08:23:30 2020
>  [011] @@ -12,7 +12,8 @@
>  [011]  - opts:
>  [011]      wait_connected: false
>  [011]    host: 8.8.8.8
>  [011] -  state: initial
>  [011] +  state: error
>  [011] +  error: Invalid argument
>  [011]    port: '123456'
>  [011]  ...
>  [011]  c:close()
> 
> The reason of the fail was that getaddrinfo() returned EIA_SERVICE for an
> incorrect TCP/IP port on FreeBSD, but crops it as modulo of 65536 on
> Linux/glibc. Checked with local script './getaddrinfo':
> 
>   (Linux/glibc) $ ./getaddrinfo 8.8.8.8 123456
>   ----
>   family: AF_INET
>   socktype: SOCK_STREAM
>   protocol: IPPROTO_TCP
>   host: 8.8.8.8
>   serv: 57920
> 
>   (FreeBSD) $ ./getaddrinfo 8.8.8.8 123456
>   getaddrinfo: Service was not recognized for socket type
> 
> So obvious fix is to change 123456 to something less or equal to
> 65535. Say, 1234.
> 
> The test depended on an order in which fibers were scheduled
> (net_box.connect() creates a separate fiber for connecting in background
> using fiber.create(), which yields). Unlikely our fiber were not get
> execution time during the connection attempt, so it was more like a
> formal thing.
> 
> But we can decrease probability of this situation even more if we'll
> grab all connection fields just when net_box.connect() returns, not
> after yield in console (which is due to waiting a next command from
> test-run).
> 
> Closes #5083
> 
> Reviewed-by: Alexander V. Tikhonov <avtikhon at tarantool.org>

I've checked your patch into 1.10, 2.3, 2.4 and master.

--
Regards, Kirill Yukhin


More information about the Tarantool-patches mailing list