From b0019accbd2ad3f5f433a8ca0c877f3bf8456f92 Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson Date: Tue, 14 Nov 2017 12:11:48 +0100 Subject: mnesia: Fix error handling in abort write The "root cause" error reason was lost when abort_write failed, e.g. file was already closed, and Mod:abort_write(..) returned an error. --- lib/mnesia/src/mnesia_log.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/mnesia/src/mnesia_log.erl b/lib/mnesia/src/mnesia_log.erl index 9536effd42..685d512acf 100644 --- a/lib/mnesia/src/mnesia_log.erl +++ b/lib/mnesia/src/mnesia_log.erl @@ -752,8 +752,8 @@ abort_write(B, What, Args, Reason) -> Opaque = B#backup_args.opaque, dbg_out("Failed to perform backup. M=~p:F=~p:A=~p -> ~p~n", [Mod, What, Args, Reason]), - try apply(Mod, abort_write, [Opaque]) of - {ok, _Res} -> throw({error, Reason}) + try {ok, _Res} = apply(Mod, abort_write, [Opaque]) of + _ -> throw({error, Reason}) catch _:Other -> error("Failed to abort backup. ~p:~p~p -> ~p~n", [Mod, abort_write, [Opaque], Other]), -- cgit v1.2.3