diff options
author | Erlang/OTP <[email protected]> | 2016-04-01 20:18:51 +0200 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2016-04-01 20:18:51 +0200 |
commit | 0634218b601614802563927c8f9b6f51a463b746 (patch) | |
tree | 909262f0cc777f36a7dc2d48df1b1436501f9cd4 /lib | |
parent | c81d11d2affc2675d37ff0f64bbdc866453a71df (diff) | |
parent | 18128ff4e9ff7bd1fcb960edf084f8db839bdd8d (diff) | |
download | otp-0634218b601614802563927c8f9b6f51a463b746.tar.gz otp-0634218b601614802563927c8f9b6f51a463b746.tar.bz2 otp-0634218b601614802563927c8f9b6f51a463b746.zip |
Merge branch 'dgud/mnesia/hang-sym-trans/OTP-13423' into maint-18
* dgud/mnesia/hang-sym-trans/OTP-13423:
mnesia: Send mnesia_down messages to waiting transactions
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mnesia/src/mnesia_tm.erl | 11 |
1 files changed, 3 insertions, 8 deletions
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) |