From e038b56530804a3e59cc8832db64e021b4b33d25 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Mon, 18 Dec 2017 15:30:39 +0100 Subject: mnesia: Fix checkpoint crash Bad timing can cause retain messages to go to a new process if checkpoint name is reused directly and the checkpoints contain different tables. Ignore those messages instead of crash. --- lib/mnesia/src/mnesia_checkpoint.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/mnesia/src/mnesia_checkpoint.erl b/lib/mnesia/src/mnesia_checkpoint.erl index 2ff77326a9..8112378ffd 100644 --- a/lib/mnesia/src/mnesia_checkpoint.erl +++ b/lib/mnesia/src/mnesia_checkpoint.erl @@ -857,9 +857,9 @@ retainer_loop(Cp = #checkpoint_args{is_activated=false, name=Name}) -> retainer_loop(Cp = #checkpoint_args{name=Name}) -> receive {_From, {retain, Tid, Tab, Key, OldRecs}} -> - R = val({Tab, {retainer, Name}}), + R = ?catch_val({Tab, {retainer, Name}}), PendingTab = Cp#checkpoint_args.pending_tab, - case R#retainer.really_retain of + case is_record(R, retainer) andalso R#retainer.really_retain of true -> Store = R#retainer.store, try true = ets:member(PendingTab, Tid), -- cgit v1.2.3 From 848cf56ef8a5ccc1807bda67d29edaa0743089fb Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 18 Dec 2017 15:36:39 +0100 Subject: Prepare release --- lib/mnesia/doc/src/notes.xml | 28 +++++++++++++++++++++++++++- lib/mnesia/vsn.mk | 2 +- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/mnesia/doc/src/notes.xml b/lib/mnesia/doc/src/notes.xml index ebab612b58..ba94e913f5 100644 --- a/lib/mnesia/doc/src/notes.xml +++ b/lib/mnesia/doc/src/notes.xml @@ -39,7 +39,33 @@ thus constitutes one section in this document. The title of each section is the version number of Mnesia.

-
Mnesia 4.15.2 +
Mnesia 4.15.3 + +
Fixed Bugs and Malfunctions + + +

+ Removed a quadratic behavior in startup. This change + implies that backend plugins (if used) must be set when + the schema is created or via configuration parameters + before mnesia is started.

+

+ Own Id: OTP-14829 Aux Id: ERIERL-84

+
+ +

+ Bad timing could crash mnesia after a checkpoint was + deactivated and reactivated with the same checkpoint name + on different tables.

+

+ Own Id: OTP-14841 Aux Id: ERIERL-113

+
+
+
+ +
+ +
Mnesia 4.15.2
Fixed Bugs and Malfunctions diff --git a/lib/mnesia/vsn.mk b/lib/mnesia/vsn.mk index 67afbdc0de..45f811846d 100644 --- a/lib/mnesia/vsn.mk +++ b/lib/mnesia/vsn.mk @@ -1 +1 @@ -MNESIA_VSN = 4.15.2 +MNESIA_VSN = 4.15.3 -- cgit v1.2.3