diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2010-07-18 13:32:09 +0100 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2010-07-18 13:32:09 +0100 |
commit | 2bf91694ddb11c2d54ae1cb23c5e000dcb67bb92 (patch) | |
tree | 453baaf185a51b032f4bea4b99bcdb1dec39485a | |
parent | 5507dbf1418dec3d61acfe82d74f3dcf7469be44 (diff) | |
download | rabbitmq-server-2bf91694ddb11c2d54ae1cb23c5e000dcb67bb92.tar.gz |
don't log warnings on clean startup of a msg_store
-rw-r--r-- | src/rabbit_msg_store.erl | 16 | ||||
-rw-r--r-- | src/rabbit_tests.erl | 26 | ||||
-rw-r--r-- | src/rabbit_variable_queue.erl | 1 |
3 files changed, 18 insertions, 25 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl index 23526a4b..7dea2f94 100644 --- a/src/rabbit_msg_store.erl +++ b/src/rabbit_msg_store.erl @@ -34,7 +34,7 @@ -behaviour(gen_server2). -export([start_link/4, write/4, read/3, contains/2, remove/2, release/2, - sync/3, client_init/2, client_terminate/1, delete_client/2, clean/2, + sync/3, client_init/2, client_terminate/1, delete_client/2, successfully_recovered_state/1]). -export([sync/1, gc_done/4, set_maximum_since_use/2, gc/3]). %% internal @@ -139,7 +139,6 @@ -spec(client_init/2 :: (server(), binary()) -> client_msstate()). -spec(client_terminate/1 :: (client_msstate()) -> 'ok'). -spec(delete_client/2 :: (server(), binary()) -> 'ok'). --spec(clean/2 :: (atom(), file:filename()) -> 'ok'). -spec(successfully_recovered_state/1 :: (server()) -> boolean()). -spec(gc/3 :: (non_neg_integer(), non_neg_integer(), @@ -384,10 +383,6 @@ delete_client(Server, Ref) -> successfully_recovered_state(Server) -> gen_server2:call(Server, successfully_recovered_state, infinity). -clean(Server, BaseDir) -> - Dir = filename:join(BaseDir, atom_to_list(Server)), - ok = rabbit_misc:recursive_delete([Dir]). - %%---------------------------------------------------------------------------- %% Client-side-only helpers %%---------------------------------------------------------------------------- @@ -506,7 +501,6 @@ init([Server, BaseDir, ClientRefs, {MsgRefDeltaGen, MsgRefDeltaGenInit}]) -> [self()]), Dir = filename:join(BaseDir, atom_to_list(Server)), - ok = filelib:ensure_dir(filename:join(Dir, "nothing")), {ok, IndexModule} = application:get_env(msg_store_index_module), rabbit_log:info("~w: using ~p to provide index~n", [Server, IndexModule]), @@ -1125,7 +1119,12 @@ index_delete_by_file(File, #msstate { index_module = Index, %% shutdown and recovery %%---------------------------------------------------------------------------- +recover_index_and_client_refs(IndexModule, undefined, Dir, _Server) -> + ok = rabbit_misc:recursive_delete([Dir]), + ok = filelib:ensure_dir(filename:join(Dir, "nothing")), + {false, IndexModule:new(Dir), sets:new()}; recover_index_and_client_refs(IndexModule, ClientRefs, Dir, Server) -> + ok = filelib:ensure_dir(filename:join(Dir, "nothing")), Fresh = fun (ErrorMsg, ErrorArgs) -> rabbit_log:warning("~w: " ++ ErrorMsg ++ "~nrebuilding indices from scratch~n", @@ -1138,8 +1137,7 @@ recover_index_and_client_refs(IndexModule, ClientRefs, Dir, Server) -> {true, Terms} -> RecClientRefs = proplists:get_value(client_refs, Terms, []), RecIndexModule = proplists:get_value(index_module, Terms), - case (ClientRefs =/= undefined andalso - lists:sort(ClientRefs) =:= lists:sort(RecClientRefs) + case (lists:sort(ClientRefs) =:= lists:sort(RecClientRefs) andalso IndexModule =:= RecIndexModule) of true -> case IndexModule:recover(Dir) of {ok, IndexState1} -> diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index ff7df11b..630483da 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -1374,17 +1374,13 @@ test_backing_queue() -> end. start_msg_store_empty() -> - start_msg_store(fun (ok) -> finished end, ok). + start_msg_store(undefined, {fun (ok) -> finished end, ok}). -start_msg_store(MsgRefDeltaGen, MsgRefDeltaGenInit) -> +start_msg_store(ClientRefs, StartupFunState) -> ok = rabbit_sup:start_child( ?PERSISTENT_MSG_STORE, rabbit_msg_store, - [?PERSISTENT_MSG_STORE, rabbit_mnesia:dir(), undefined, - {MsgRefDeltaGen, MsgRefDeltaGenInit}]), - start_transient_msg_store(). - -start_transient_msg_store() -> - ok = rabbit_msg_store:clean(?TRANSIENT_MSG_STORE, rabbit_mnesia:dir()), + [?PERSISTENT_MSG_STORE, rabbit_mnesia:dir(), ClientRefs, + StartupFunState]), ok = rabbit_sup:start_child( ?TRANSIENT_MSG_STORE, rabbit_msg_store, [?TRANSIENT_MSG_STORE, rabbit_mnesia:dir(), undefined, @@ -1502,13 +1498,13 @@ test_msg_store() -> ok = rabbit_msg_store:client_terminate(MSCState7), %% stop and restart, preserving every other msg in 2nd half ok = stop_msg_store(), - ok = start_msg_store(fun ([]) -> finished; - ([Guid|GuidsTail]) - when length(GuidsTail) rem 2 == 0 -> - {Guid, 1, GuidsTail}; - ([Guid|GuidsTail]) -> - {Guid, 0, GuidsTail} - end, Guids2ndHalf), + ok = start_msg_store([], {fun ([]) -> finished; + ([Guid|GuidsTail]) + when length(GuidsTail) rem 2 == 0 -> + {Guid, 1, GuidsTail}; + ([Guid|GuidsTail]) -> + {Guid, 0, GuidsTail} + end, Guids2ndHalf}), %% check we have the right msgs left lists:foldl( fun (Guid, Bool) -> diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 3378c435..d7116ba0 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -294,7 +294,6 @@ %%---------------------------------------------------------------------------- start(DurableQueues) -> - ok = rabbit_msg_store:clean(?TRANSIENT_MSG_STORE, rabbit_mnesia:dir()), {AllTerms, StartFunState} = rabbit_queue_index:recover(DurableQueues), Refs = [Ref || Terms <- AllTerms, begin |