summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-10-14 18:59:49 +0100
committerEmile Joubert <emile@rabbitmq.com>2013-10-14 18:59:49 +0100
commit6821af7b7059ac1198a9103f6ca74f02d93c1942 (patch)
tree8d4fb34318ed186bc0143a3e888f2fa0efefa3d1
parentaef7cd5feb01c54f487e8e133af54399ecc632fb (diff)
downloadrabbitmq-server-bug25815.tar.gz
Always check message expiry when queues startbug25815
-rw-r--r--src/rabbit_amqqueue_process.erl27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index add75d89..1baef6d8 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -239,22 +239,23 @@ recovery_barrier(BarrierPid) ->
end.
process_args(State = #q{q = #amqqueue{arguments = Arguments}}) ->
- lists:foldl(
- fun({Arg, Fun}, State1) ->
- case rabbit_misc:table_lookup(Arguments, Arg) of
- {_Type, Val} -> Fun(Val, State1);
- undefined -> State1
- end
- end, State,
- [{<<"x-expires">>, fun init_expires/2},
- {<<"x-dead-letter-exchange">>, fun init_dlx/2},
- {<<"x-dead-letter-routing-key">>, fun init_dlx_routing_key/2},
- {<<"x-message-ttl">>, fun init_ttl/2},
- {<<"x-max-length">>, fun init_max_length/2}]).
+ drop_expired_msgs(
+ lists:foldl(
+ fun({Arg, Fun}, State1) ->
+ case rabbit_misc:table_lookup(Arguments, Arg) of
+ {_Type, Val} -> Fun(Val, State1);
+ undefined -> State1
+ end
+ end, State,
+ [{<<"x-expires">>, fun init_expires/2},
+ {<<"x-dead-letter-exchange">>, fun init_dlx/2},
+ {<<"x-dead-letter-routing-key">>, fun init_dlx_routing_key/2},
+ {<<"x-message-ttl">>, fun init_ttl/2},
+ {<<"x-max-length">>, fun init_max_length/2}])).
init_expires(Expires, State) -> ensure_expiry_timer(State#q{expires = Expires}).
-init_ttl(TTL, State) -> drop_expired_msgs(State#q{ttl = TTL}).
+init_ttl(TTL, State) -> State#q{ttl = TTL}.
init_dlx(DLX, State = #q{q = #amqqueue{name = QName}}) ->
State#q{dlx = rabbit_misc:r(QName, exchange, DLX)}.