diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_amqqueue_process.erl | 2 | ||||
| -rw-r--r-- | src/rabbit_backing_queue.erl | 11 | ||||
| -rw-r--r-- | src/rabbit_queue_index.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_tests.erl | 6 |
5 files changed, 12 insertions, 12 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index f611573bf2..146ac7763c 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -117,7 +117,7 @@ (rabbit_types:amqqueue()) -> [{pid(), rabbit_types:ctag(), boolean(), rabbit_framing:amqp_table()}]). --spec(queue_name_to_dir_name/1 :: (rabbit_types:amqqueue()) -> string()). +-spec(queue_name_to_dir_name/1 :: (rabbit_types:r('queue')) -> string()). -spec(consumer_info_keys/0 :: () -> rabbit_types:info_keys()). -spec(consumers_all/1 :: (rabbit_types:vhost()) diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 3af2993e97..4c4ebb25dd 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -226,7 +226,7 @@ recovery_status(new) -> recovery_status({Recover, _}) -> {true, Recover}. -matches(new, Q1, Q2) -> +matches(false, Q1, Q2) -> %% i.e. not policy Q1#amqqueue.name =:= Q2#amqqueue.name andalso Q1#amqqueue.durable =:= Q2#amqqueue.durable andalso diff --git a/src/rabbit_backing_queue.erl b/src/rabbit_backing_queue.erl index 603c34a93a..9943d73290 100644 --- a/src/rabbit_backing_queue.erl +++ b/src/rabbit_backing_queue.erl @@ -27,8 +27,8 @@ ('empty' | {rabbit_types:basic_message(), boolean(), Ack})). -type(drop_result(Ack) :: ('empty' | {rabbit_types:msg_id(), Ack})). --type(recovery_terms() :: [{file:filename(), [term()]}]). --type(attempt_recovery() :: {boolean(), recovery_terms()}). +-type(recovery_terms() :: [term()] | 'non_clean_shutdown'). +-type(recovery_info() :: 'new' | {pid(), recovery_terms()}). -type(purged_msg_count() :: non_neg_integer()). -type(async_callback() :: fun ((atom(), fun ((atom(), state()) -> state())) -> 'ok')). @@ -52,15 +52,16 @@ %% %% Takes %% 1. the amqqueue record -%% 2. a boolean indicating whether the queue is an existing queue that -%% should be recovered +%% 2. a term indicating whether the queue is an existing queue that +%% should be recovered or not, possibly containing recovery terms +%% to be used in the recovery process %% 3. an asynchronous callback which accepts a function of type %% backing-queue-state to backing-queue-state. This callback %% function can be safely invoked from any process, which makes it %% useful for passing messages back into the backing queue, %% especially as the backing queue does not have control of its own %% mailbox. --callback init(rabbit_types:amqqueue(), attempt_recovery(), +-callback init(rabbit_types:amqqueue(), recovery_info(), async_callback()) -> state(). %% Called on queue shutdown when queue isn't being deleted. diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 95cb9d977b..03c9db502c 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -221,7 +221,8 @@ -spec(next_segment_boundary/1 :: (seq_id()) -> seq_id()). -spec(bounds/1 :: (qistate()) -> {non_neg_integer(), non_neg_integer(), qistate()}). --spec(recover/1 :: ([rabbit_amqqueue:name()]) -> {[[any()]], {walker(A), A}}). +-spec(recover/1 :: ([rabbit_amqqueue:name()]) -> + {[{file:filename(), [any()]}], {walker(A), A}}). -spec(scan/3 :: (file:filename(), fun ((seq_id(), rabbit_types:msg_id(), diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index 38af6dd5c8..bb9234405a 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -2129,12 +2129,10 @@ test_queue() -> init_test_queue() -> TestQueue = test_queue(), - %% TODO: shutdown_terms is no longer relevant - rework this test case - Terms = rabbit_queue_index:shutdown_terms(TestQueue), - PRef = proplists:get_value(persistent_ref, Terms, rabbit_guid:gen()), + PRef = rabbit_guid:gen(), PersistentClient = msg_store_client_init(?PERSISTENT_MSG_STORE, PRef), Res = rabbit_queue_index:recover( - TestQueue, {clean_shutdown, Terms}, false, + TestQueue, {clean_shutdown, []}, false, fun (MsgId) -> rabbit_msg_store:contains(MsgId, PersistentClient) end, |
