rabbitmq-server
rabbitmq-server copied to clipboard
Channel error when a queue process is not available
When a queue is no longer available, eg because the node is being shut down, it may happen that the channel tries to deliver a message to a queue there is no process for. The error looks like this:
** Reason for termination ==
** {{case_clause,{error,{error,noproc}}},
[{rabbit_channel,deliver_to_queues,2,
[{file,"rabbit_channel.erl"},{line,2161}]},
{rabbit_channel,handle_method,3,
[{file,"rabbit_channel.erl"},{line,1325}]},
{rabbit_channel,handle_cast,2,[{file,"rabbit_channel.erl"},{line,644}]},
{gen_server2,handle_msg,2,[{file,"gen_server2.erl"},{line,1067}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,226}]}]}
crasher:
initial call: rabbit_channel:init/1
pid: <0.4519.181>
registered_name: []
exception exit: {{case_clause,{error,{error,noproc}}},
[{rabbit_channel,deliver_to_queues,2,
[{file,"rabbit_channel.erl"},
{line,2161}]},
{rabbit_channel,handle_method,3,
[{file,"rabbit_channel.erl"},
{line,1325}]},
{rabbit_channel,handle_cast,2,
[{file,"rabbit_channel.erl"},
{line,644}]},
{gen_server2,handle_msg,2,
[{file,"gen_server2.erl"},{line,1067}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,226}]}]}
in function gen_server2:terminate/3 (gen_server2.erl, line 1183)
ancestors: [<0.4521.181>,<0.3493.181>,<0.641.181>,<0.643.181>,
<0.25127.12>,<0.25126.12>,<0.25125.12>,<0.25123.12>,
<0.25121.12>,rabbit_sup,<0.223.0>]
message_queue_len: 0
messages: []
links: [<0.4521.181>]
dictionary: [{{queue_exchange_stats,
{{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
queue,<<"quorum-1635330514037-27-8-1">>},
{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
exchange,
<<"rabbit.load.generator.topic.1635330514037">>}}},
none},
{{queue_exchange_stats,
{{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
queue,<<"quorum-1635330514037-30-6-1">>},
{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
exchange,
<<"rabbit.load.generator.topic.1635330514037">>}}},
none},
{permission_cache_can_expire,false},
{{queue_exchange_stats,
{{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
queue,<<"quorum-1635330514037-7-2-3">>},
{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
exchange,
<<"rabbit.load.generator.topic.1635330514037">>}}},
none},
{{queue_exchange_stats,
{{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
queue,<<"quorum-1635330514037-6-4-3">>},
{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
exchange,
<<"rabbit.load.generator.topic.1635330514037">>}}},
none},
{channel_operation_timeout,15000},
{{credit_to,<0.657.181>},191},
{{queue_exchange_stats,
{{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
queue,<<"quorum-1635330514037-32-7-3">>},
{resource,<<"aae1acb1-f094-4301-a005-aa56e060b514">>,
The error is returned here: https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/src/rabbit_fifo_client.erl#L168.