File 0985-mnesia-Fix-a-bug-that-mnesia-add_table_copy-3-could-.patch of Package erlang
From 97013c80dc080d86f0e7efae6cd94e9ead0fc794 Mon Sep 17 00:00:00 2001
From: Takeru Ohta <phjgt308@gmail.com>
Date: Tue, 24 May 2022 12:47:17 +0900
Subject: [PATCH 1/2] mnesia: Fix a bug that `mnesia:add_table_copy/3` could
hold a read lock forever
---
lib/mnesia/src/mnesia_loader.erl | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/lib/mnesia/src/mnesia_loader.erl b/lib/mnesia/src/mnesia_loader.erl
index fc42c9e13a..b16d00da61 100644
--- a/lib/mnesia/src/mnesia_loader.erl
+++ b/lib/mnesia/src/mnesia_loader.erl
@@ -1014,15 +1014,15 @@ finish_copy(Pid, Tab, Storage, RemoteS, NeedLock) ->
mnesia_checkpoint:tm_add_copy(Tab, RecNode),
DatBin = dat2bin(Tab, ?catch_val({Tab, storage_type}), RemoteS),
Pid ! {self(), {no_more, DatBin}},
- cleanup_tab_copier(Pid, Storage, Tab)
- end,
- receive
- {Pid, no_more} -> % Dont bother about the spurious 'more' message
- no_more;
- {copier_done, Node} ->
- verbose("Tab receiver ~tp crashed (more): ~p~n", [Tab, Node]),
- receiver_died
- end
+ cleanup_tab_copier(Pid, Storage, Tab),
+ receive
+ {Pid, no_more} -> % Dont bother about the spurious 'more' message
+ no_more;
+ {copier_done, Node} ->
+ verbose("Tab receiver ~tp crashed (more): ~p~n", [Tab, Node]),
+ receiver_died
+ end
+ end
end,
mnesia:transaction(Trans).
--
2.35.3