summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-12-21 17:54:54 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-12-21 17:58:42 +0000
commit1403596717839c48f95903dc37058c2146878f9f (patch)
treef7fe2741be7cecee2b5e57c77bbfc4922734e27c /src
parente5557ad53c2d01c5534ad7626f2b447ad1c0aa9b (diff)
downloadrabbitmq-server-git-1403596717839c48f95903dc37058c2146878f9f.tar.gz
Force recover client references to be maps. Start empty message store for each vhost on migration.
Empty message stores should be started to avoid rebuilding indexes on actual startup.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_msg_store_vhost_sup.erl3
-rw-r--r--src/rabbit_variable_queue.erl7
2 files changed, 8 insertions, 2 deletions
diff --git a/src/rabbit_msg_store_vhost_sup.erl b/src/rabbit_msg_store_vhost_sup.erl
index d5ed915da4..0209e88cf7 100644
--- a/src/rabbit_msg_store_vhost_sup.erl
+++ b/src/rabbit_msg_store_vhost_sup.erl
@@ -8,7 +8,8 @@
%% Internal
-export([start_store_for_vhost/4]).
-start_link(Name, VhostsClientRefs, StartupFunState) ->
+start_link(Name, VhostsClientRefs, StartupFunState) when is_map(VhostsClientRefs);
+ VhostsClientRefs == undefined ->
supervisor2:start_link({local, Name}, ?MODULE,
[Name, VhostsClientRefs, StartupFunState]).
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index c0a2adbc67..111f263130 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -492,7 +492,7 @@ stop() ->
ok = stop_msg_store(),
ok = rabbit_queue_index:stop().
-start_msg_store(Refs, StartFunState) ->
+start_msg_store(Refs, StartFunState) when is_map(Refs); Refs == undefined ->
ok = rabbit_sup:start_child(?TRANSIENT_MSG_STORE_SUP, rabbit_msg_store_vhost_sup,
[?TRANSIENT_MSG_STORE_SUP,
undefined, {fun (ok) -> finished end, ok}]),
@@ -2745,6 +2745,11 @@ move_messages_to_vhost_store() ->
OldStore = run_old_persistent_store(RecoveryRefs, StartFunState),
%% New store should not be recovered.
NewStoreSup = start_new_store_sup(),
+ Vhosts = rabbit_vhost:list(),
+ lists:foreach(fun(VHost) ->
+ rabbit_msg_store_vhost_sup:add_vhost(NewStoreSup, VHost)
+ end,
+ Vhosts),
MigrationBatchSize = application:get_env(rabbit, queue_migration_batch_size,
?QUEUE_MIGRATION_BATCH_SIZE),
in_batches(MigrationBatchSize,