summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2016-12-22 12:03:52 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2016-12-22 12:03:52 +0000
commit79685d044aee1ec7c557660fbefbcede8d789338 (patch)
treeaa4d69def4c1ef6894480ec10e964621b0b37b0a /src
parent5282534220029eaaf138542eb15b16fa96afde82 (diff)
downloadrabbitmq-server-git-79685d044aee1ec7c557660fbefbcede8d789338.tar.gz
Recover queues after non-clean shutdown
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_variable_queue.erl10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 367cbb464e..dda7605969 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -2815,9 +2815,13 @@ migrate_queue({QueueName, RecoveryTerm}, OldStore, NewStoreSup) ->
rabbit_msg_store:client_terminate(OldStoreClient),
rabbit_msg_store:client_terminate(NewStoreClient),
NewClientRef = rabbit_msg_store:client_ref(NewStoreClient),
- NewRecoveryTerm = lists:keyreplace(persistent_ref, 1, RecoveryTerm,
- {persistent_ref, NewClientRef}),
- rabbit_queue_index:update_recovery_term(QueueName, NewRecoveryTerm),
+ case RecoveryTerm of
+ non_clean_shutdown -> ok;
+ Term when is_list(Term) ->
+ NewRecoveryTerm = lists:keyreplace(persistent_ref, 1, RecoveryTerm,
+ {persistent_ref, NewClientRef}),
+ rabbit_queue_index:update_recovery_term(QueueName, NewRecoveryTerm)
+ end,
log_upgrade_verbose("Queue migration finished ~p", [QueueName]),
{QueueName, NewClientRef}.