summaryrefslogtreecommitdiff
path: root/src/ejabberd_sql.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-26 00:05:41 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-06-26 00:05:41 +0300
commitb479fe5315164e2091afc2fc379446c5c476bcb0 (patch)
tree9dd9646bd95ca5414e269813aeec00ac3dcdb0f0 /src/ejabberd_sql.erl
parentUse proper loglevel to log resumption failures (diff)
Use correct stacktrace in logging macros
By calling erlang:get_stacktrace() inside a lager function we obtain actually a stacktrace of the lager function, not the one we got during exception. This is not a problem for newest Erlang versions though.
Diffstat (limited to '')
-rw-r--r--src/ejabberd_sql.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl
index 6ebf023e..3620f942 100644
--- a/src/ejabberd_sql.erl
+++ b/src/ejabberd_sql.erl
@@ -535,12 +535,13 @@ outer_transaction(F, NRestarts, _Reason) ->
put(?NESTING_KEY, ?TOP_LEVEL_TXN),
outer_transaction(F, NRestarts - 1, Reason);
?EX_RULE(throw, {aborted, Reason}, Stack) when NRestarts =:= 0 ->
+ StackTrace = ?EX_STACK(Stack),
?ERROR_MSG("SQL transaction restarts exceeded~n** "
"Restarts: ~p~n** Last abort reason: "
"~p~n** Stacktrace: ~p~n** When State "
"== ~p",
[?MAX_TRANSACTION_RESTARTS, Reason,
- ?EX_STACK(Stack), get(?STATE_KEY)]),
+ StackTrace, get(?STATE_KEY)]),
sql_query_internal([<<"rollback;">>]),
{aborted, Reason};
?EX_RULE(exit, Reason, _) ->
@@ -612,8 +613,9 @@ sql_query_internal(#sql_query{} = Query) ->
exit:{normal, _} ->
{error, <<"terminated unexpectedly">>};
?EX_RULE(Class, Reason, Stack) ->
+ StackTrace = ?EX_STACK(Stack),
?ERROR_MSG("Internal error while processing SQL query: ~p",
- [{Class, Reason, ?EX_STACK(Stack)}]),
+ [{Class, Reason, StackTrace}]),
{error, <<"internal error">>}
end,
check_error(Res, Query);
@@ -753,10 +755,11 @@ sql_query_format_res({selected, _, Rows}, SQLQuery) ->
[(SQLQuery#sql_query.format_res)(Row)]
catch
?EX_RULE(Class, Reason, Stack) ->
+ StackTrace = ?EX_STACK(Stack),
?ERROR_MSG("Error while processing "
"SQL query result: ~p~n"
"row: ~p",
- [{Class, Reason, ?EX_STACK(Stack)}, Row]),
+ [{Class, Reason, StackTrace}, Row]),
[]
end
end, Rows),