File 0253-erts-Fix-dump_SUITE-signal_abort.patch of Package erlang

From fd70dac80241c022180ea6862213ca32dfdbc83f Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Mon, 3 May 2021 11:17:51 +0200
Subject: [PATCH 4/7] erts: Fix dump_SUITE:signal_abort

It is not guaranteed that the processes on the remote
node have been started after 500 ms, so we add a sync
inbetween the child node and parent so that we know
that they are running.
---
 erts/emulator/test/dump_SUITE.erl | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/erts/emulator/test/dump_SUITE.erl b/erts/emulator/test/dump_SUITE.erl
index 08ac36c7ef..31a80434c7 100644
--- a/erts/emulator/test/dump_SUITE.erl
+++ b/erts/emulator/test/dump_SUITE.erl
@@ -26,7 +26,7 @@
 
 -export([signal_abort/1, exiting_dump/1, free_dump/1]).
 
--export([load/0]).
+-export([load/1]).
 
 -include_lib("kernel/include/file.hrl").
 
@@ -70,13 +70,13 @@ signal_abort(Config) ->
 
     SO = rpc:call(Node, erlang, system_info, [schedulers_online]),
 
-    _P1 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (0 rem SO) + 1}]),
-    _P2 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (1 rem SO) + 1}]),
-    _P3 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (2 rem SO) + 1}]),
-    _P4 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (3 rem SO) + 1}]),
-    _P5 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (4 rem SO) + 1}]),
-    _P6 = spawn_opt(Node, ?MODULE, load, [], [{scheduler, (5 rem SO) + 1}]),
+    Iter = lists:seq(0, 5),
 
+    [spawn_opt(Node, ?MODULE, load, [self()], [{scheduler, (I rem SO) + 1}])
+     || I <- Iter],
+
+    %% Make sure that each process is started
+    [receive ok -> ok end || _ <- Iter],
     timer:sleep(500),
 
     true = rpc:call(Node, os, putenv, ["ERL_CRASH_DUMP",Dump]),
@@ -94,6 +94,9 @@ signal_abort(Config) ->
 
     ok.
 
+load(Parent) ->
+    Parent ! ok,
+    load().
 load() ->
     lists:seq(1,10000),
     load().
-- 
2.26.2

openSUSE Build Service is sponsored by