summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-07-18 13:32:09 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-07-18 13:32:09 +0100
commit2bf91694ddb11c2d54ae1cb23c5e000dcb67bb92 (patch)
tree453baaf185a51b032f4bea4b99bcdb1dec39485a
parent5507dbf1418dec3d61acfe82d74f3dcf7469be44 (diff)
downloadrabbitmq-server-2bf91694ddb11c2d54ae1cb23c5e000dcb67bb92.tar.gz
don't log warnings on clean startup of a msg_store
-rw-r--r--src/rabbit_msg_store.erl16
-rw-r--r--src/rabbit_tests.erl26
-rw-r--r--src/rabbit_variable_queue.erl1
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