summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rabbit_dead_letter.erl18
-rw-r--r--src/rabbit_mirror_queue_master.erl2
2 files changed, 12 insertions, 8 deletions
diff --git a/src/rabbit_dead_letter.erl b/src/rabbit_dead_letter.erl
index 6aeace7964..ec32e6878d 100644
--- a/src/rabbit_dead_letter.erl
+++ b/src/rabbit_dead_letter.erl
@@ -25,7 +25,9 @@
-ifdef(use_specs).
--spec publish(rabbit_types:message(), atom(), rabbit_types:exchange(),
+-type reason() :: 'expired' | 'rejected' | 'maxlen'.
+
+-spec publish(rabbit_types:message(), reason(), rabbit_types:exchange(),
'undefined' | binary(), rabbit_amqqueue:name()) -> 'ok'.
-endif.
@@ -83,7 +85,10 @@ per_msg_ttl_header(#'P_basic'{expiration = Expiration}) ->
per_msg_ttl_header(_) ->
[].
-detect_cycles(expired, #basic_message{content = Content}, Queues) ->
+detect_cycles(rejected, _Msg, Queues) ->
+ {Queues, []};
+
+detect_cycles(_Reason, #basic_message{content = Content}, Queues) ->
#content{properties = #'P_basic'{headers = Headers}} =
rabbit_binary_parser:ensure_content_decoded(Content),
NoCycles = {Queues, []},
@@ -105,9 +110,7 @@ detect_cycles(expired, #basic_message{content = Content}, Queues) ->
_ ->
NoCycles
end
- end;
-detect_cycles(_Reason, _Msg, Queues) ->
- {Queues, []}.
+ end.
is_cycle(Queue, Deaths) ->
{Cycle, Rest} =
@@ -117,12 +120,13 @@ is_cycle(Queue, Deaths) ->
(_) ->
true
end, Deaths),
- %% Is there a cycle, and if so, is it entirely due to expiry?
+ %% Is there a cycle, and if so, is it "fully automatic", i.e. with
+ %% no reject in it?
case Rest of
[] -> false;
[H|_] -> lists:all(
fun ({table, D}) ->
- {longstr, <<"expired">>} =:=
+ {longstr, <<"rejected">>} =/=
rabbit_misc:table_lookup(D, <<"reason">>);
(_) ->
false
diff --git a/src/rabbit_mirror_queue_master.erl b/src/rabbit_mirror_queue_master.erl
index 1bac1b5594..4bb923c479 100644
--- a/src/rabbit_mirror_queue_master.erl
+++ b/src/rabbit_mirror_queue_master.erl
@@ -140,7 +140,7 @@ sync_mirrors(HandleInfo, EmitStats,
backing_queue_state = BQS }) ->
Log = fun (Fmt, Params) ->
rabbit_mirror_queue_misc:log_info(
- QName, "Synchronising ~s: " ++ Fmt ++ "~n", Params)
+ QName, "Synchronising: " ++ Fmt ++ "~n", Params)
end,
Log("~p messages to synchronise", [BQ:len(BQS)]),
{ok, #amqqueue{slave_pids = SPids}} = rabbit_amqqueue:lookup(QName),