Consumer Crashes when consuming from unavailable quorum queue
search cancel

Consumer Crashes when consuming from unavailable quorum queue

book

Article ID: 392171

calendar_today

Updated On:

Products

VMware Tanzu Data Suite Pivotal RabbitMQ Support Only for OpenSource RabbitMQ VMware RabbitMQ VMware Tanzu RabbitMQ

Issue/Introduction

Consumer Crashes when consuming from unavailable quorum queue with the following error. 

Failed to deliver message to queues, delivery_tag={binary,
                                                   <<18,0,0,0,0,0,0,0>>}, delivery_id=0, reason={{function_clause,
                                                                                                  [{rabbit_quorum_queue,
                                                                                                    handle_tick,
                                                                                                    [{resource,
                                                                                                      <<"queuename01">>,
                                                                                                      queue,
                                                                                                      <<"user01">>},
                                                                                                     {'queuename01_user01',
                                                                                                      0,
                                                                                                      0,
                                                                                                      0,
                                                                                                      0,
                                                                                                      0,
                                                                                                      0},
                                                                                                     []],
                                                                                                    [{file,
                                                                                                      "rabbit_quorum_queue.erl"},
                                                                                                     {line,
                                                                                                      551}]},

Cause

An error caused by routing a message to a queue should not be propagated to the producer because it's a basic feature of a message broker to decouple the publisher from the consumer (the queue). This was not the case here.

Resolution

when a client consumed from an unavailable quorum queue, the following crash occurred:

{badmatch,{error,noproc}}
[{rabbit_quorum_queue,consume,3,[{file,\"rabbit_quorum_queue.erl\"},{line,993}]}
 

This fixes the bug by returning an error when registering a quorum queue consumer to rabbit_queue_type.

This will be fixed in 4.1 released mid April 2025