Skip to content

Commit 68d0510

Browse files
committed
Fix crash
``` ./omq amqp -t /queue --amqp-subject foo -C 1 ``` crashed with ``` reason: {badarg, [{erlang,list_to_binary, [undefined], {rabbit_amqp_session,ensure_terminus,5, [{file,"rabbit_amqp_session.erl"},{line,2046}]}, {rabbit_amqp_session,ensure_target,3, [{file,"rabbit_amqp_session.erl"},{line,1705}]}, {rabbit_amqp_session,handle_control,2, [{file,"rabbit_amqp_session.erl"},{line,715}]}, {rabbit_amqp_session,handle_cast,2, [{file,"rabbit_amqp_session.erl"},{line,331}]}, {gen_server,try_handle_cast,3, [{file,"gen_server.erl"},{line,1121}]}, {gen_server,handle_msg,6, [{file,"gen_server.erl"},{line,1183}]}, {proc_lib,init_p_do_apply,3, [{file,"proc_lib.erl"},{line,241}]}]} ```
1 parent c3676d4 commit 68d0510

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

deps/rabbit/src/rabbit_amqp_session.erl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,6 +2042,10 @@ ensure_terminus(target, {topic, _bindingkey}, _, _, _) ->
20422042
ensure_terminus(source, {topic, _BindingKey}, Vhost, User, Durability) ->
20432043
%% exchange amq.topic exists
20442044
declare_queue(generate_queue_name(), Vhost, User, Durability);
2045+
ensure_terminus(target, {queue, undefined}, _, _, _) ->
2046+
%% Target "/queue" means publish to default exchange with message subject as routing key.
2047+
%% Default exchange exists.
2048+
undefined;
20452049
ensure_terminus(_, {queue, QNameList}, Vhost, User, Durability) ->
20462050
declare_queue(list_to_binary(QNameList), Vhost, User, Durability);
20472051
ensure_terminus(_, {amqqueue, QNameList}, Vhost, _, _) ->

deps/rabbit/test/amqp_system_SUITE_data/fsharp-tests/Program.fs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ module Test =
374374
"/exchange/amq.fanout", "/exchange/amq.fanout/", "", true
375375
"/exchange/amq.direct", "/exchange/amq.direct/", "", true
376376
"/exchange/amq.direct", "/exchange/amq.direct/a", "a", true
377+
"/queue", "/queue/b", "b", true
377378

378379
(* FIXME: The following three tests rely on the queue "test"
379380
* created by previous tests in this function. *)

0 commit comments

Comments
 (0)