summaryrefslogtreecommitdiff
path: root/src/rabbit.erl
diff options
context:
space:
mode:
authorDaniil Fedotov <dfedotov@pivotal.io>2017-03-17 13:03:03 +0000
committerDaniil Fedotov <dfedotov@pivotal.io>2017-04-12 12:13:43 +0100
commitc464fdefa9c451d25c42573190f72f24a227ed4a (patch)
tree3a277ae22ef2fecd4a01b37a0edc59342c64dc1b /src/rabbit.erl
parent536674232015587befed5be325bc89aeca3c17ff (diff)
downloadrabbitmq-server-git-c464fdefa9c451d25c42573190f72f24a227ed4a.tar.gz
Per-vhost supervision trees for queues and message stores.
Per-vhost message stores can be restarted, but queues contain references for old message stores in message store client data, also queues rely on message store process to report confirms for messages on disk. Because after message store restart queues will not get any confirms and will fail with badarg error trying to access message store with an old client, queue processes should be restarted together with message stores. Queue process cannot monitor message store because of backing_queue mechanism, so they should be controlled by a supervision tree. One tree will contain queues supervisor and message store proecesses. Per-vhost supervisor will restart if any of it's children dies. Per-vhost supervisor restart process will do queue and message store data recovery the same way as pre-3.7 global message store did, just with VHost as an argument and in a vhost data directory.
Diffstat (limited to 'src/rabbit.erl')
-rw-r--r--src/rabbit.erl5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 680a6a2a98..2fa18ac0e5 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -819,10 +819,7 @@ boot_delegate() ->
recover() ->
rabbit_policy:recover(),
- Qs = rabbit_amqqueue:recover(),
- ok = rabbit_binding:recover(rabbit_exchange:recover(),
- [QName || #amqqueue{name = QName} <- Qs]),
- rabbit_amqqueue:start(Qs).
+ rabbit_vhost:recover().
maybe_insert_default_data() ->
case rabbit_table:needs_default_data() of