diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2020-03-12 00:12:23 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-03-12 00:12:50 +0300 |
| commit | f8d47976d999e8816dacf981f86b71f387dc18fc (patch) | |
| tree | 040a2938127f47a6bfd9e146b22affeaf11fd9f0 /src | |
| parent | 2d7ce9961237de7f5ab67375ec99da9299d39a3a (diff) | |
| download | rabbitmq-server-git-f8d47976d999e8816dacf981f86b71f387dc18fc.tar.gz | |
Merge pull request #2273 from luos/fix_crashed_queues_on_startup
After network partition some classic queues are crashed, do not have mirrors
(cherry picked from commit 3c1b317b08870d3ca4c04c4a59b4067bf768707e)
Diffstat (limited to 'src')
| -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'. " |
