diff options
| -rw-r--r-- | src/rabbit_amqqueue.erl | 28 | ||||
| -rw-r--r-- | src/rabbit_exchange.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_direct.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_fanout.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_headers.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_exchange_type_topic.erl | 4 |
6 files changed, 22 insertions, 26 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 2c33851626..bcea4c97db 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -339,24 +339,20 @@ internal_delete(QueueName) -> on_node_down(Node) -> [Hook() || - Hook <- - rabbit_misc:execute_mnesia_transaction( - fun () -> - qlc:fold( - fun (QueueName, Acc) -> - Post = rabbit_exchange: - delete_transient_queue_bindings(QueueName), - ok = mnesia:delete({rabbit_queue, QueueName}), - [Post | Acc] - end, - [], - qlc:q([QueueName || - #amqqueue{name = QueueName, pid = Pid} - <- mnesia:table(rabbit_queue), - node(Pid) == Node])) - end)], + Hook <- rabbit_misc:execute_mnesia_transaction( + fun () -> + qlc:e(qlc:q([delete_queue(QueueName) || + #amqqueue{name = QueueName, pid = Pid} + <- mnesia:table(rabbit_queue), + node(Pid) == Node])) + end)], ok. +delete_queue(QueueName) -> + Post = rabbit_exchange:delete_transient_queue_bindings(QueueName), + ok = mnesia:delete({rabbit_queue, QueueName}), + Post. + pseudo_queue(QueueName, Pid) -> #amqqueue{name = QueueName, durable = false, diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index 0734c0835c..29451fc9af 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -516,8 +516,8 @@ conditional_delete(Exchange = #exchange{name = ExchangeName}) -> %% result of a node failure case contains(rabbit_route, Match) orelse contains(rabbit_durable_route, Match) of - true -> {error, in_use}; - false -> unconditional_delete(Exchange) + false -> unconditional_delete(Exchange); + true -> {error, in_use} end. unconditional_delete(Exchange = #exchange{name = ExchangeName}) -> diff --git a/src/rabbit_exchange_type_direct.erl b/src/rabbit_exchange_type_direct.erl index 7526dd66bc..deb8d76f47 100644 --- a/src/rabbit_exchange_type_direct.erl +++ b/src/rabbit_exchange_type_direct.erl @@ -35,8 +35,8 @@ -behaviour(rabbit_exchange_type). -export([description/0, publish/2]). --export([validate/1, create/1, recover/2, delete/2, add_binding/2, - delete_binding/2]). +-export([validate/1, create/1, recover/2, delete/2, + add_binding/2, delete_binding/2]). -include("rabbit_exchange_type_spec.hrl"). -rabbit_boot_step({?MODULE, diff --git a/src/rabbit_exchange_type_fanout.erl b/src/rabbit_exchange_type_fanout.erl index bef988974f..deb8454f27 100644 --- a/src/rabbit_exchange_type_fanout.erl +++ b/src/rabbit_exchange_type_fanout.erl @@ -35,8 +35,8 @@ -behaviour(rabbit_exchange_type). -export([description/0, publish/2]). --export([validate/1, create/1, recover/2, delete/2, add_binding/2, - delete_binding/2]). +-export([validate/1, create/1, recover/2, delete/2, + add_binding/2, delete_binding/2]). -include("rabbit_exchange_type_spec.hrl"). -rabbit_boot_step({?MODULE, diff --git a/src/rabbit_exchange_type_headers.erl b/src/rabbit_exchange_type_headers.erl index 760e0a6e80..af35071d54 100644 --- a/src/rabbit_exchange_type_headers.erl +++ b/src/rabbit_exchange_type_headers.erl @@ -36,8 +36,8 @@ -behaviour(rabbit_exchange_type). -export([description/0, publish/2]). --export([validate/1, create/1, recover/2, delete/2, add_binding/2, - delete_binding/2]). +-export([validate/1, create/1, recover/2, delete/2, + add_binding/2, delete_binding/2]). -include("rabbit_exchange_type_spec.hrl"). -rabbit_boot_step({?MODULE, diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl index 1c8c8e118b..2001371e5f 100644 --- a/src/rabbit_exchange_type_topic.erl +++ b/src/rabbit_exchange_type_topic.erl @@ -35,8 +35,8 @@ -behaviour(rabbit_exchange_type). -export([description/0, publish/2]). --export([validate/1, create/1, recover/2, delete/2, add_binding/2, - delete_binding/2]). +-export([validate/1, create/1, recover/2, delete/2, + add_binding/2, delete_binding/2]). -include("rabbit_exchange_type_spec.hrl"). -rabbit_boot_step({?MODULE, |
