diff options
| author | Daniil Fedotov <dfedotov@pivotal.io> | 2017-07-27 13:16:41 +0100 |
|---|---|---|
| committer | Daniil Fedotov <dfedotov@pivotal.io> | 2017-07-31 12:18:00 +0100 |
| commit | 4f6574b258168b26775e7764ca23de2eee32bc85 (patch) | |
| tree | 4bf674fdf7f9df72a6913d36577acbd4a6446698 /src | |
| parent | c36ad89fe024ec2ae450c6fafd61771a6e6ecc06 (diff) | |
| download | rabbitmq-server-git-4f6574b258168b26775e7764ca23de2eee32bc85.tar.gz | |
Check if vhost supervisor is running when starting slaves.
We should not fail a node boot process if cannot create slaves on
down vhosts.
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_mirror_queue_misc.erl | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl index 59522da4a9..4f13b5d408 100644 --- a/src/rabbit_mirror_queue_misc.erl +++ b/src/rabbit_mirror_queue_misc.erl @@ -228,11 +228,21 @@ add_mirror(QName, MirrorNode, SyncMode) -> rabbit_misc:with_exit_handler( rabbit_misc:const(ok), fun () -> - SPid = rabbit_amqqueue_sup_sup:start_queue_process( - MirrorNode, Q, slave), - log_info(QName, "Adding mirror on node ~p: ~p~n", - [MirrorNode, SPid]), - rabbit_mirror_queue_slave:go(SPid, SyncMode) + #amqqueue{name = #resource{virtual_host = VHost}} = Q, + case rabbit_vhost_sup_sup:get_vhost_sup(VHost, MirrorNode) of + {ok, _} -> + SPid = rabbit_amqqueue_sup_sup:start_queue_process( + MirrorNode, Q, slave), + log_info(QName, "Adding mirror on node ~p: ~p~n", + [MirrorNode, SPid]), + rabbit_mirror_queue_slave:go(SPid, SyncMode); + {error, Error} -> + log_warning(QName, + "Unable to start queue slave on node '~p'. " + "Vhost is not started: ~p~n", + [MirrorNode, Error]), + ok + end end); {error, not_found} = E -> E |
