Don't catch exit:{aborted, _} inside mnesia transactions
This is used by mnesia internally to retry deadlocked transaction,
so we should allow it to propagate.
This could be triggered by calling create_node concurrently from
multiple processes and did lead to {cyclic, ...} errors.
This commit is contained in:
@@ -3920,6 +3920,8 @@ do_transaction(ServerHost, Fun, Trans, DBType) ->
|
||||
F = fun() ->
|
||||
try Fun()
|
||||
catch
|
||||
exit:{aborted, _} = Err when DBType == mnesia ->
|
||||
exit(Err);
|
||||
Class:Reason:StackTrace when (DBType == mnesia andalso
|
||||
Trans == transaction) orelse
|
||||
DBType == sql ->
|
||||
|
||||
Reference in New Issue
Block a user