Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
0521-kernel-Run-large_file-tests-in-a-peer-node...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0521-kernel-Run-large_file-tests-in-a-peer-node.patch of Package erlang
From 9e4ed45dfb8364803d2bb9128b214cf80be0ba3f Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Wed, 19 Oct 2022 12:01:34 +0200 Subject: [PATCH 5/9] kernel: Run large_file tests in a peer node Sometimes the OOM killer comes along and terminates these tests, so we spawn a node to do the tests so that the OOM killer does not cancel all remaining tests. --- lib/kernel/test/file_SUITE.erl | 39 +++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/lib/kernel/test/file_SUITE.erl b/lib/kernel/test/file_SUITE.erl index cefb5e1ff2..3759ef1c22 100644 --- a/lib/kernel/test/file_SUITE.erl +++ b/lib/kernel/test/file_SUITE.erl @@ -4840,28 +4840,37 @@ do_run_large_file_test(Config, Run, Name0) -> Name = filename:join(proplists:get_value(priv_dir, Config), ?MODULE_STRING ++ Name0), + %% We run the test in a peer node in case the OOM killer + {ok, Peer, Node} = ?CT_PEER(), + + erpc:call(Node, application, ensure_all_started, [os_mon]), + %% Set up a process that will delete this file. Tester = self(), Deleter = - spawn( - fun() -> - Mref = erlang:monitor(process, Tester), - receive - {'DOWN',Mref,_,_,_} -> ok; - {Tester,done} -> ok - end, - ?FILE_MODULE:delete(Name) - end), + spawn( + fun() -> + Mref = erlang:monitor(process, Tester), + receive + {'DOWN',Mref,_,_,_} -> ok; + {Tester,done} -> ok + end, + ?FILE_MODULE:delete(Name) + end), %% Run the test case. - Res = Run(Name), + try + Res = erpc:call(Node, fun() -> Run(Name) end), - %% Delete file and finish deleter process. - Mref = erlang:monitor(process, Deleter), - Deleter ! {Tester,done}, - receive {'DOWN',Mref,_,_,_} -> ok end, + %% Delete file and finish deleter process. + Mref = erlang:monitor(process, Deleter), + Deleter ! {Tester,done}, + receive {'DOWN',Mref,_,_,_} -> ok end, - Res. + Res + after + peer:stop(Peer) + end. disc_free(Path) -> Data = disksup:get_disk_data(), -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor