summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2017-08-04 14:50:41 +0100
committerDaniil Fedotov <dfedotov@pivotal.io>2017-08-04 14:50:41 +0100
commit1c63b80ae46aebec3f90803439aeb79a41ffe56b (patch)
tree5531b88fccce1d95962674100db661e3c5709ee0
parent1711a6ca84056a4e28aefdbbbb142493e56fb5b8 (diff)
downloadrabbitmq-server-git-1c63b80ae46aebec3f90803439aeb79a41ffe56b.tar.gz
Do not run a message store migration if there are no durable queues.
If there are no queues to migrate, we should not spend time starting old message store and doing an empty migration. Log that there is no migration. Delete the old message store which can cintain transient queues data.
-rw-r--r--src/rabbit_variable_queue.erl19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index b4945fe3d3..4d61bb4b03 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -2766,9 +2766,15 @@ transform_store(Store, TransformFun) ->
move_messages_to_vhost_store() ->
case list_persistent_queues() of
- % [] -> ok;
- Queues -> move_messages_to_vhost_store(Queues)
- end.
+ [] ->
+ log_upgrade("No durable queues found."
+ " Skipping message store migration"),
+ ok;
+ Queues ->
+ move_messages_to_vhost_store(Queues)
+ end,
+ ok = delete_old_store(),
+ ok = rabbit_queue_index:cleanup_global_recovery_terms().
move_messages_to_vhost_store(Queues) ->
log_upgrade("Moving messages to per-vhost message store"),
@@ -2802,8 +2808,7 @@ move_messages_to_vhost_store(Queues) ->
"message_store upgrades: Batch ~p of ~p queues migrated ~n. ~p total left"),
log_upgrade("Message store migration finished"),
- ok = delete_old_store(OldStore),
- ok = rabbit_queue_index:cleanup_global_recovery_terms(),
+ ok = rabbit_sup:stop_child(OldStore),
[ok= rabbit_recovery_terms:close_table(VHost) || VHost <- VHosts],
ok = stop_new_store(NewMsgStore).
@@ -2936,8 +2941,8 @@ stop_new_store(NewStore) ->
NewStore),
ok.
-delete_old_store(OldStore) ->
- ok = rabbit_sup:stop_child(OldStore),
+delete_old_store() ->
+ log_upgrade("Removing the old message store data"),
rabbit_file:recursive_delete(
[filename:join([rabbit_mnesia:dir(), ?PERSISTENT_MSG_STORE])]),
%% Delete old transient store as well