From 1c63b80ae46aebec3f90803439aeb79a41ffe56b Mon Sep 17 00:00:00 2001 From: Daniil Fedotov Date: Fri, 4 Aug 2017 14:50:41 +0100 Subject: [PATCH] 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. --- src/rabbit_variable_queue.erl | 19 ++++++++++++------- 1 file 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