diff options
| -rw-r--r-- | src/rabbit_mirror_queue_misc.erl | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/rabbit_mirror_queue_misc.erl b/src/rabbit_mirror_queue_misc.erl index 6589660245..d92e74ea7e 100644 --- a/src/rabbit_mirror_queue_misc.erl +++ b/src/rabbit_mirror_queue_misc.erl @@ -243,11 +243,21 @@ add_mirror(QName, MirrorNode, SyncMode) -> #resource{virtual_host = VHost} = amqqueue:get_name(Q), case rabbit_vhost_sup_sup:get_vhost_sup(VHost, MirrorNode) of {ok, _} -> - SPid = rabbit_amqqueue_sup_sup:start_queue_process( + try + SPid = rabbit_amqqueue_sup_sup:start_queue_process( MirrorNode, Q, slave), - log_info(QName, "Adding mirror on node ~p: ~p~n", + log_info(QName, "Adding mirror on node ~p: ~p~n", [MirrorNode, SPid]), - rabbit_mirror_queue_slave:go(SPid, SyncMode); + rabbit_mirror_queue_slave:go(SPid, SyncMode) + of + _ -> ok + catch + error:QError -> + log_warning(QName, + "Unable to start queue mirror on node '~p'. " + "Target queue supervisor is not running: ~p~n", + [MirrorNode, QError]) + end; {error, Error} -> log_warning(QName, "Unable to start queue mirror on node '~p'. " |
