summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Corbacho <diana@rabbitmq.com>2018-12-06 13:29:17 +0000
committerDiana Corbacho <diana@rabbitmq.com>2018-12-06 13:29:17 +0000
commitd07cccc623116047ed5e230c6543a97ad5de2e6e (patch)
treebfc0bb7f4b5483e79de54df3e2d1b77afe98bb08
parentdbe1dea0debc248bd0480ae210b7d518ac82aa01 (diff)
downloadrabbitmq-server-git-d07cccc623116047ed5e230c6543a97ad5de2e6e.tar.gz
Log a warning if dead letter exchange cannot be found
[#162411672]
-rw-r--r--src/rabbit_quorum_queue.erl11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/rabbit_quorum_queue.erl b/src/rabbit_quorum_queue.erl
index bf4b432253..2d44c535b3 100644
--- a/src/rabbit_quorum_queue.erl
+++ b/src/rabbit_quorum_queue.erl
@@ -559,9 +559,14 @@ args_policy_lookup(Name, Resolve, Q = #amqqueue{arguments = Args}) ->
dead_letter_publish(undefined, _, _, _) ->
ok;
dead_letter_publish(X, RK, QName, ReasonMsgs) ->
- {ok, Exchange} = rabbit_exchange:lookup(X),
- [rabbit_dead_letter:publish(Msg, Reason, Exchange, RK, QName)
- || {Reason, Msg} <- ReasonMsgs].
+ case rabbit_exchange:lookup(X) of
+ {ok, Exchange} ->
+ [rabbit_dead_letter:publish(Msg, Reason, Exchange, RK, QName)
+ || {Reason, Msg} <- ReasonMsgs];
+ {error, not_found} ->
+ rabbit_log:warning("Dead lettering for quorum queue ~p failed: "
+ "exchange ~p not found", [QName, X])
+ end.
%% TODO escape hack
qname_to_rname(#resource{virtual_host = <<"/">>, name = Name}) ->