diff options
author | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2023-03-09 09:51:55 +0100 |
---|---|---|
committer | Arnaud Cogoluègnes <acogoluegnes@gmail.com> | 2023-03-09 09:51:55 +0100 |
commit | e8fbb09efcafbf5d9c3ef1a714aff6c9b26f0cbd (patch) | |
tree | a21f74c70e52c1742d8022a8c4ce7957799ddfba | |
parent | 297d9edc3e3a60ae41f9c854bc262a6e8079cb46 (diff) | |
download | rabbitmq-server-git-e8fbb09efcafbf5d9c3ef1a714aff6c9b26f0cbd.tar.gz |
Return "precondition failed" on exchange deletion if appropriate
If unused flag is set. This keeps the original behavior.
-rw-r--r-- | deps/rabbit/src/rabbit_exchange.erl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/deps/rabbit/src/rabbit_exchange.erl b/deps/rabbit/src/rabbit_exchange.erl index 0c64a7125e..1e118f7c4a 100644 --- a/deps/rabbit/src/rabbit_exchange.erl +++ b/deps/rabbit/src/rabbit_exchange.erl @@ -428,7 +428,13 @@ delete(XName, IfUnused, Username) -> ?EXCHANGE_DELETE_IN_PROGRESS_COMPONENT, XName#resource.name, true, Username), Deletions = process_deletions(rabbit_db_exchange:delete(XName, IfUnused)), - rabbit_binding:notify_deletions(Deletions, Username) + case Deletions of + {error, _} -> + Deletions; + _ -> + rabbit_binding:notify_deletions(Deletions, Username), + ok + end after rabbit_runtime_parameters:clear(XName#resource.virtual_host, ?EXCHANGE_DELETE_IN_PROGRESS_COMPONENT, |