summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2021-09-28 12:34:53 +0300
committerGitHub <noreply@github.com>2021-09-28 12:34:53 +0300
commit96865bbd3d74479383b5e471cb6bb50101f5ad77 (patch)
treef5feb1f6bd91a02d0e2a4fffb86119140679b36c
parentd88129d3cafc919e1e2bcde0fcec5e551f8a6dbf (diff)
parentb34cd9ad76bb44fe246051106672de3db4b2800b (diff)
downloadrabbitmq-server-git-96865bbd3d74479383b5e471cb6bb50101f5ad77.tar.gz
Merge pull request #3513 from rabbitmq/mergify/bp/v3.9.x/pr-3511
Preserve stacktraces in propagated internal auth backend exceptions (backport #3511)
-rw-r--r--deps/rabbit/src/rabbit_auth_backend_internal.erl36
1 files changed, 18 insertions, 18 deletions
diff --git a/deps/rabbit/src/rabbit_auth_backend_internal.erl b/deps/rabbit/src/rabbit_auth_backend_internal.erl
index d94526270a..a46beaaf83 100644
--- a/deps/rabbit/src/rabbit_auth_backend_internal.erl
+++ b/deps/rabbit/src/rabbit_auth_backend_internal.erl
@@ -234,9 +234,9 @@ add_user_sans_validation(Username, Password, ActingUser) ->
throw:{error, {user_already_exists, _}} = Error ->
rabbit_log:warning("Failed to add user '~s': the user already exists", [Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to add user '~s': ~p", [Username, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end .
-spec delete_user(rabbit_types:username(), rabbit_types:username()) -> 'ok'.
@@ -272,9 +272,9 @@ delete_user(Username, ActingUser) ->
throw:{error, {no_such_user, _}} = Error ->
rabbit_log:warning("Failed to delete user '~s': the user does not exist", [Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to delete user '~s': ~p", [Username, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end .
-spec lookup_user
@@ -317,9 +317,9 @@ change_password_sans_validation(Username, Password, ActingUser) ->
throw:{error, {no_such_user, _}} = Error ->
rabbit_log:warning("Failed to change password for user '~s': the user does not exist", [Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to change password for user '~s': ~p", [Username, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end.
-spec clear_password(rabbit_types:username(), rabbit_types:username()) -> 'ok'.
@@ -368,9 +368,9 @@ set_tags(Username, Tags, ActingUser) ->
throw:{error, {no_such_user, _}} = Error ->
rabbit_log:warning("Failed to set tags for user '~s': the user does not exist", [Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to set tags for user '~s': ~p", [Username, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end .
-spec set_permissions
@@ -428,10 +428,10 @@ set_permissions(Username, VirtualHost, ConfigurePerm, WritePerm, ReadPerm, Actin
rabbit_log:warning("Failed to set permissions for '~s': the user does not exist",
[Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to set permissions for '~s' in virtual host '~s': ~p",
[Username, VirtualHost, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end.
-spec clear_permissions
@@ -464,10 +464,10 @@ clear_permissions(Username, VirtualHost, ActingUser) ->
rabbit_log:warning("Failed to clear permissions for '~s': the user does not exist",
[Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to clear permissions for '~s' in virtual host '~s': ~p",
[Username, VirtualHost, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end.
@@ -537,10 +537,10 @@ set_topic_permissions(Username, VirtualHost, Exchange, WritePerm, ReadPerm, Acti
rabbit_log:warning("Failed to set topic permissions on exchange '~s' for '~s': the user does not exist.",
[Exchange, Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to set topic permissions on exchange '~s' for '~s' in virtual host '~s': ~p.",
[Exchange, Username, VirtualHost, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end .
clear_topic_permissions(Username, VirtualHost, ActingUser) ->
@@ -572,10 +572,10 @@ clear_topic_permissions(Username, VirtualHost, ActingUser) ->
rabbit_log:warning("Failed to clear topic permissions for '~s': the user does not exist",
[Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to clear topic permissions for '~s' in virtual host '~s': ~p",
[Username, VirtualHost, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end.
clear_topic_permissions(Username, VirtualHost, Exchange, ActingUser) ->
@@ -609,10 +609,10 @@ clear_topic_permissions(Username, VirtualHost, Exchange, ActingUser) ->
rabbit_log:warning("Failed to clear topic permissions on exchange '~s' for '~s': the user does not exist",
[Exchange, Username]),
throw(Error);
- Class:Error ->
+ Class:Error:Stacktrace ->
rabbit_log:warning("Failed to clear topic permissions on exchange '~s' for '~s' in virtual host '~s': ~p",
[Exchange, Username, VirtualHost, Error]),
- erlang:Class(Error)
+ erlang:raise(Class, Error, Stacktrace)
end.
put_user(User, ActingUser) -> put_user(User, undefined, ActingUser).