Skip to content

Commit 715e3ea

Browse files
Merge branch 'cloudamqp-fix_num_messages_delayed'
2 parents fb7ac94 + a0b9ada commit 715e3ea

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

src/rabbit_delayed_message.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ disable_plugin() ->
9898
ok.
9999

100100
messages_delayed(Exchange) ->
101-
MatchHead = #delay_entry{delay_key = make_key('_', Exchange),
101+
ExchangeName = Exchange#exchange.name,
102+
MatchHead = #delay_entry{delay_key = make_key('_', #exchange{name = ExchangeName, _ = '_'}),
102103
delivery = '_', ref = '_'},
103104
Delays = mnesia:dirty_select(?TABLE_NAME, [{MatchHead, [], ['$_']}]),
104105
length(Delays).

test/plugin_SUITE.erl

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,15 +220,29 @@ delayed_messages_count(Config) ->
220220
Exchanges = rabbit_ct_broker_helpers:rpc(Config, 0,
221221
rabbit_exchange, info_all, [<<"/">>]),
222222

223-
[Exchange] = lists:filter(
223+
FilterEx =
224224
fun(X) ->
225-
{resource, <<"/">>, exchange, Ex} == proplists:get_value(name, X)
225+
{resource, <<"/">>, exchange, Ex} == proplists:get_value(name, X)
226226
end,
227-
Exchanges),
227+
228+
[Exchange] = lists:filter(FilterEx, Exchanges),
228229
{messages_delayed, 6} = proplists:lookup(messages_delayed, Exchange),
229230

231+
%% Set a policy for the exchange
232+
PolicyName = make_policy_name(Config, "1"),
233+
rabbit_ct_broker_helpers:set_policy(
234+
Config, 0, PolicyName, <<"^", Ex/binary>>, <<"exchanges">>, [{<<"alternate-exchange">>, <<"altex">>}]),
235+
236+
%% Same message count returned for modified exchange
237+
Exchanges2 = rabbit_ct_broker_helpers:rpc(Config, 0,
238+
rabbit_exchange, info_all, [<<"/">>]),
239+
240+
[Exchange2] = lists:filter(FilterEx, Exchanges2),
241+
{messages_delayed, 6} = proplists:lookup(messages_delayed, Exchange2),
242+
230243
consume(Chan, Q, Msgs),
231244

245+
rabbit_ct_broker_helpers:clear_policy(Config, 0, PolicyName),
232246
rabbit_ct_client_helpers:close_channel(Chan),
233247
ok.
234248

@@ -418,3 +432,7 @@ make_exchange_name(Config, Suffix) ->
418432
make_queue_name(Config, Suffix) ->
419433
B = rabbit_ct_helpers:get_config(Config, test_resource_name),
420434
erlang:list_to_binary("q-" ++ B ++ "-" ++ Suffix).
435+
436+
make_policy_name(Config, Suffix) ->
437+
B = rabbit_ct_helpers:get_config(Config, test_resource_name),
438+
erlang:list_to_binary("p-" ++ B ++ "-" ++ Suffix).

0 commit comments

Comments
 (0)