diff options
| -rw-r--r-- | src/rabbit_amqqueue.erl | 6 | ||||
| -rw-r--r-- | src/rabbit_queue_index.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_variable_queue.erl | 24 |
3 files changed, 13 insertions, 20 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 24586b7c63..55b98a0c37 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -237,10 +237,8 @@ find_durable_queues() -> recover_durable_queues(QueuesAndRecoveryTerms) -> Qs = [{start_queue_process(node(), Q), Terms} || {Q, Terms} <- QueuesAndRecoveryTerms], - [Q || {Q, Terms} <- Qs, queue_init(Q, Terms) == {new, Q}]. - -queue_init(#amqqueue{ pid = Pid }, RecoveryTerms) -> - gen_server2:call(Pid, {init, {self(), RecoveryTerms}}, infinity). + [Q || {Q = #amqqueue{ pid = Pid }, Terms} <- Qs, + gen_server2:call(Pid, {init, {self(), Terms}}, infinity) == {new, Q}]. declare(QueueName, Durable, AutoDelete, Args, Owner) -> ok = check_declare_arguments(QueueName, Args), diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 50cd79eaf1..e2ae4e00ae 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -393,8 +393,7 @@ all_queue_directory_names(Dir) -> blank_state(QueueName) -> blank_state_dir( - filename:join(queues_dir(), - queue_name_to_dir_name(QueueName))). + filename:join(queues_dir(), queue_name_to_dir_name(QueueName))). blank_state_dir(Dir) -> {ok, MaxJournal} = diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 82326651f4..9903532492 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -389,20 +389,16 @@ %%---------------------------------------------------------------------------- start(DurableQueues) -> - {Terms, StartFunState} = rabbit_queue_index:recover(DurableQueues), - start_msg_store(persistent_refs(Terms), StartFunState), - {ok, Terms}. - -persistent_refs(Terms) -> lists:foldl(fun persistent_refs/2, [], Terms). - -persistent_refs(non_clean_shutdown, Acc) -> - Acc; -persistent_refs(Terms, Acc) -> - Ref = proplists:get_value(persistent_ref, Terms), - case Ref of - undefined -> Acc; - _ -> [Ref | Acc] - end. + {AllTerms, StartFunState} = rabbit_queue_index:recover(DurableQueues), + start_msg_store( + [Ref || Terms <- AllTerms, + Terms /= non_clean_shutdown, + begin + Ref = proplists:get_value(persistent_ref, Terms), + Ref =/= undefined + end], + StartFunState), + {ok, AllTerms}. stop() -> stop_msg_store(). |
