diff options
| author | Daniil Fedotov <dfedotov@pivotal.io> | 2017-08-04 14:50:41 +0100 |
|---|---|---|
| committer | Daniil Fedotov <dfedotov@pivotal.io> | 2017-08-04 14:50:41 +0100 |
| commit | 1c63b80ae46aebec3f90803439aeb79a41ffe56b (patch) | |
| tree | 5531b88fccce1d95962674100db661e3c5709ee0 | |
| parent | 1711a6ca84056a4e28aefdbbbb142493e56fb5b8 (diff) | |
| download | rabbitmq-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.erl | 19 |
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 |
