File 0101-kernel-gen-tcp-socket-test-Adjusted-the-several-acce.patch of Package erlang
From cc4bbf6e578a3fb178ee4e92a8b66679a1bb3e3e Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Wed, 24 Mar 2021 14:49:28 +0100
Subject: [PATCH 1/3] [kernel|gen-tcp-socket|test] Adjusted the 'several
accepts in one go' test case
Use explicit backlog = 8 when creating the listen socket to avoid
acceptor race condition.
OTP-17156
---
lib/kernel/test/gen_tcp_misc_SUITE.erl | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/lib/kernel/test/gen_tcp_misc_SUITE.erl b/lib/kernel/test/gen_tcp_misc_SUITE.erl
index cb4a7aa995..422e5d57f0 100644
--- a/lib/kernel/test/gen_tcp_misc_SUITE.erl
+++ b/lib/kernel/test/gen_tcp_misc_SUITE.erl
@@ -4397,7 +4397,8 @@ several_accepts_in_one_go(Config) when is_list(Config) ->
do_several_accepts_in_one_go(Config) ->
?P("create listen socket"),
- LS = case ?LISTEN(Config, 0,[]) of
+ NumActors = 8,
+ LS = case ?LISTEN(Config, 0, [{backlog, NumActors}]) of
{ok, LSock} ->
LSock;
{error, eaddrnotavail = Reason} ->
@@ -4405,13 +4406,15 @@ do_several_accepts_in_one_go(Config) ->
end,
Parent = self(),
{ok, PortNo} = inet:port(LS),
- F1 = fun() -> ?P("acceptor starting"),
- Parent ! {accepted,self(),gen_tcp:accept(LS)}
+ F1 = fun() ->
+ ?P("acceptor starting"),
+ Parent ! {accepted,self(),gen_tcp:accept(LS)}
end,
- F2 = fun() -> ?P("connector starting"),
- Parent ! {connected,self(),?CONNECT(Config, "localhost",PortNo,[])}
+ F2 = fun() ->
+ ?P("connector starting"),
+ Parent ! {connected,self(),?CONNECT(Config, "localhost",PortNo,[])}
end,
- Ns = lists:seq(1,8),
+ Ns = lists:seq(1, NumActors),
?P("start acceptors"),
_ = [spawn(F1) || _ <- Ns],
?P("await accept timeouts"),
@@ -4419,7 +4422,7 @@ do_several_accepts_in_one_go(Config) ->
?P("start connectors"),
_ = [spawn(F2) || _ <- Ns],
?P("await accepts"),
- ok = ?EXPECT_ACCEPTS([{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}}],8,15000),
+ ok = ?EXPECT_ACCEPTS([{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}}],NumActors,15000),
?P("await connects"),
ok = ?EXPECT_CONNECTS([{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}},{_,{ok,_}}],1000),
?P("done"),
--
2.26.2