diff options
| author | Simon MacMullen <simon@lshift.net> | 2010-05-20 15:00:04 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@lshift.net> | 2010-05-20 15:00:04 +0100 |
| commit | 7fd408c58df3558aeab7860153fbf4a026441a2d (patch) | |
| tree | 0dd3ed0a156e0dbf0cbe6222b73648854ea2c7a7 | |
| parent | 8acffe9e960c9e0ea13e29ea4386cfcac8c4f31d (diff) | |
| download | rabbitmq-server-git-7fd408c58df3558aeab7860153fbf4a026441a2d.tar.gz | |
Cherry-pick 268c69708cb655beae46b8f025602c1ecd205488.
| -rw-r--r-- | src/rabbit_amqqueue.erl | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 3a9ff07436..864b9ef31d 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -142,6 +142,8 @@ find_durable_queues() -> node(Pid) == Node])) end). +%% TODO this has not been merged from 268c69708cb655beae46b8f025602c1ecd205488 +%% but will be fixed when we merge bug22695 recover_durable_queues(DurableQueues) -> Qs = [start_queue_process(Q) || Q <- DurableQueues], [Q || Q <- Qs, gen_server2:call(Q#amqqueue.pid, {init, true}) == Q]. @@ -320,19 +322,21 @@ flush_all(QPids, ChPid) -> delegate:invoke_no_result( QPids, fun (QPid) -> gen_server2:cast(QPid, {flush, ChPid}) end). +internal_delete2(QueueName) -> + ok = mnesia:delete({rabbit_queue, QueueName}), + ok = mnesia:delete({rabbit_durable_queue, QueueName}), + %% we want to execute some things, as + %% decided by rabbit_exchange, after the + %% transaction. + rabbit_exchange:delete_queue_bindings(QueueName). + internal_delete(QueueName) -> case rabbit_misc:execute_mnesia_transaction( fun () -> case mnesia:wread({rabbit_queue, QueueName}) of [] -> {error, not_found}; - [_] -> - ok = mnesia:delete({rabbit_queue, QueueName}), - ok = mnesia:delete({rabbit_durable_queue, QueueName}), - %% we want to execute some things, as - %% decided by rabbit_exchange, after the - %% transaction. - rabbit_exchange:delete_queue_bindings(QueueName) + [_] -> internal_delete2(QueueName) end end) of Err = {error, _} -> Err; |
