Skip to content

Commit 2b8a105

Browse files
Merge branch 'rabbitmq-server-channel-interceptor-hang' (again)
2 parents 0c8c45f + 5570b18 commit 2b8a105

File tree

2 files changed

+36
-5
lines changed

2 files changed

+36
-5
lines changed

test/channel_interceptor_SUITE.erl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ all() ->
2929
groups() ->
3030
[
3131
{non_parallel_tests, [], [
32-
register_interceptor
32+
register_interceptor,
33+
register_failing_interceptors
3334
]}
3435
].
3536

@@ -71,9 +72,9 @@ end_per_testcase(Testcase, Config) ->
7172

7273
register_interceptor(Config) ->
7374
passed = rabbit_ct_broker_helpers:rpc(Config, 0,
74-
?MODULE, register_interceptor1, [Config]).
75+
?MODULE, register_interceptor1, [Config, dummy_interceptor]).
7576

76-
register_interceptor1(Config) ->
77+
register_interceptor1(Config, Interceptor) ->
7778
PredefinedChannels = rabbit_channel:list(),
7879

7980
Ch1 = rabbit_ct_client_helpers:open_channel(Config, 0),
@@ -89,8 +90,8 @@ register_interceptor1(Config) ->
8990

9091
ok = rabbit_registry:register(channel_interceptor,
9192
<<"dummy interceptor">>,
92-
dummy_interceptor),
93-
[{interceptors, [{dummy_interceptor, undefined}]}] =
93+
Interceptor),
94+
[{interceptors, [{Interceptor, undefined}]}] =
9495
rabbit_channel:info(ChannelProc, [interceptors]),
9596

9697
check_send_receive(Ch1, QName, <<"bar">>, <<"">>),
@@ -102,6 +103,9 @@ register_interceptor1(Config) ->
102103
check_send_receive(Ch1, QName, <<"bar">>, <<"bar">>),
103104
passed.
104105

106+
register_failing_interceptors(Config) ->
107+
passed = rabbit_ct_broker_helpers:rpc(Config, 0,
108+
?MODULE, register_interceptor1, [Config, failing_dummy_interceptor]).
105109

106110
check_send_receive(Ch1, QName, Send, Receive) ->
107111
amqp_channel:call(Ch1,

test/failing_dummy_interceptor.erl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-module(failing_dummy_interceptor).
2+
3+
-behaviour(rabbit_channel_interceptor).
4+
5+
-include_lib("rabbit_common/include/rabbit.hrl").
6+
-include_lib("rabbit_common/include/rabbit_framing.hrl").
7+
8+
9+
-compile(export_all).
10+
11+
init(_Ch) ->
12+
timer:sleep(15500),
13+
undefined.
14+
15+
description() ->
16+
[{description,
17+
<<"Empties payload on publish">>}].
18+
19+
intercept(#'basic.publish'{} = Method, Content, _IState) ->
20+
Content2 = Content#content{payload_fragments_rev = []},
21+
{Method, Content2};
22+
23+
intercept(Method, Content, _VHost) ->
24+
{Method, Content}.
25+
26+
applies_to() ->
27+
['basic.publish'].

0 commit comments

Comments
 (0)