From 18128ff4e9ff7bd1fcb960edf084f8db839bdd8d Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson
Date: Thu, 17 Mar 2016 10:23:41 +0100
Subject: mnesia: Send mnesia_down messages to waiting transactions
Mnesia didn't forward mnesia_down to transactions which where already
decided to be aborted, but that could lead to hanging transactions
still waiting for messages from the node which had stopped.
---
lib/mnesia/src/mnesia_tm.erl | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
(limited to 'lib/mnesia')
diff --git a/lib/mnesia/src/mnesia_tm.erl b/lib/mnesia/src/mnesia_tm.erl
index e7ee938312..1d3eb87036 100644
--- a/lib/mnesia/src/mnesia_tm.erl
+++ b/lib/mnesia/src/mnesia_tm.erl
@@ -1692,13 +1692,10 @@ commit_participant(Coord, Tid, Bin, C0, DiscNs, _RamNs) ->
?eval_debug_fun({?MODULE, commit_participant, undo_prepare},
[{tid, Tid}]);
- {'EXIT', _, _} ->
+ {'EXIT', _MnesiaTM, Reason} ->
+ reply(Coord, {do_abort, Tid, self(), {bad_commit,Reason}}),
mnesia_recover:log_decision(D#decision{outcome = aborted}),
- ?eval_debug_fun({?MODULE, commit_participant, exit_log_abort},
- [{tid, Tid}]),
- mnesia_schema:undo_prepare_commit(Tid, C0),
- ?eval_debug_fun({?MODULE, commit_participant, exit_undo_prepare},
- [{tid, Tid}]);
+ mnesia_schema:undo_prepare_commit(Tid, C0);
Msg ->
verbose("** ERROR ** commit_participant ~p, got unexpected msg: ~p~n",
@@ -2210,8 +2207,6 @@ reconfigure_coordinators(N, [{Tid, [Store | _]} | Coordinators]) ->
true ->
send_mnesia_down(Tid, Store, N)
end;
- aborted ->
- ignore; % avoid spurious mnesia_down messages
_ ->
%% Tell the coordinator about the mnesia_down
send_mnesia_down(Tid, Store, N)
--
cgit v1.2.3
From 7765727317721d5de5949a5f39e0211f3b920da7 Mon Sep 17 00:00:00 2001
From: Erlang/OTP
Date: Fri, 1 Apr 2016 20:19:12 +0200
Subject: Prepare release
---
lib/mnesia/doc/src/notes.xml | 18 +++++++++++++++++-
lib/mnesia/vsn.mk | 2 +-
2 files changed, 18 insertions(+), 2 deletions(-)
(limited to 'lib/mnesia')
diff --git a/lib/mnesia/doc/src/notes.xml b/lib/mnesia/doc/src/notes.xml
index 149cd69559..18bb110104 100644
--- a/lib/mnesia/doc/src/notes.xml
+++ b/lib/mnesia/doc/src/notes.xml
@@ -39,7 +39,23 @@
thus constitutes one section in this document. The title of each
section is the version number of Mnesia.
- Mnesia 4.13.3
+ Mnesia 4.13.4
+
+ Fixed Bugs and Malfunctions
+
+ -
+
+ Mnesia transactions could hang while waiting on a
+ response from a node who had stopped.
+
+ Own Id: OTP-13423
+
+
+
+
+
+
+Mnesia 4.13.3
Fixed Bugs and Malfunctions
diff --git a/lib/mnesia/vsn.mk b/lib/mnesia/vsn.mk
index 843d9d18d4..194bc439a0 100644
--- a/lib/mnesia/vsn.mk
+++ b/lib/mnesia/vsn.mk
@@ -1 +1 @@
-MNESIA_VSN = 4.13.3
+MNESIA_VSN = 4.13.4
--
cgit v1.2.3