File 0703-mnesia-Flush-already-handled-exit-messages.patch of Package erlang
From 1c233f795f8b2a1fa66ff3413735844c149dd86e Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Wed, 27 Oct 2021 12:13:03 +0200
Subject: [PATCH 3/3] mnesia: Flush already handled exit messages
Leaked exit messages to user process if new rpc module is used.
---
lib/mnesia/src/mnesia_checkpoint.erl | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lib/mnesia/src/mnesia_checkpoint.erl b/lib/mnesia/src/mnesia_checkpoint.erl
index 3273d3d27e..969af80368 100644
--- a/lib/mnesia/src/mnesia_checkpoint.erl
+++ b/lib/mnesia/src/mnesia_checkpoint.erl
@@ -579,7 +579,7 @@ call(Name, Msg) ->
{'DOWN', Monitor, _, Pid, Reason} ->
{error, {"Got exit", [Name, Reason]}};
{Name, Self, Reply} ->
- erlang:demonitor(Monitor),
+ erlang:demonitor(Monitor, [flush]),
Reply
end;
Error ->
@@ -817,7 +817,6 @@ retainer_loop(Cp = #checkpoint_args{is_activated=false, name=Name}) ->
{From, deactivate} ->
do_stop(Cp),
reply(From, Name, deactivated),
- unlink(From),
exit(shutdown);
{From, get_checkpoint} ->
@@ -920,7 +919,6 @@ retainer_loop(Cp = #checkpoint_args{name=Name}) ->
{From, deactivate} ->
do_stop(Cp),
reply(From, Name, deactivated),
- unlink(From),
exit(shutdown);
{_From, {mnesia_down, Node}} ->
--
2.31.1