aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Gudmundsson <dgud@erlang.org>2011-09-19 15:52:58 +0200
committerDan Gudmundsson <dgud@erlang.org>2011-09-19 15:52:58 +0200
commita6bd22387b3647a5e2669314c800454ccde9b0b3 (patch)
tree50b624bf67e105c0c8ed398021f31d1ccd75dc53
parent7ebf84abf7e5d06ce9ef6ec11783318aa393093d (diff)
downloadotp-a6bd22387b3647a5e2669314c800454ccde9b0b3.tar.gz
otp-a6bd22387b3647a5e2669314c800454ccde9b0b3.tar.bz2
otp-a6bd22387b3647a5e2669314c800454ccde9b0b3.zip
[mnesia] Use api to log decisions.
Instead of just appending decisions to the log, use mnesia_log:log(Decision), it will increment the counter which causes the log to be dumped even if no actual commits are stored on this node. This fixed a bug where the LATEST.log would grow forever on a node which had the schema on disc, but where not involved in any commits.
-rw-r--r--lib/mnesia/src/mnesia_recover.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/mnesia/src/mnesia_recover.erl b/lib/mnesia/src/mnesia_recover.erl
index b3eed1de6e..4750291a10 100644
--- a/lib/mnesia/src/mnesia_recover.erl
+++ b/lib/mnesia/src/mnesia_recover.erl
@@ -227,11 +227,13 @@ do_log_decision(D, DoTell, NodeD) ->
note_outcome(D2),
case mnesia_monitor:use_dir() of
true ->
- mnesia_log:append(latest_log, D2),
if
DoTell == true, Outcome /= unclear ->
tell_im_certain(NodeD#decision.disc_nodes--[node()],D2),
- tell_im_certain(NodeD#decision.ram_nodes--[node()], D2);
+ tell_im_certain(NodeD#decision.ram_nodes--[node()], D2),
+ mnesia_log:log(D2);
+ Outcome /= unclear ->
+ mnesia_log:log(D2);
true ->
ignore
end;