Skip to content

annotate_msg seems to be calling set_annotation with wrong arguments #12398

@gabrielrat

Description

@gabrielrat

Describe the bug

This line
https://github.com/rabbitmq/rabbitmq-server/blame/788879969ed10120b61bf03e6d2f72b1447ca73b/deps/rabbit/src/rabbit_fifo.erl#L1837
mc:set_annotation(delivery_count, DelCount, Msg);
seems to be calling
mc:set_annotation which doesnt have any clause for delivery_count atom. I am new to Erlang and I might be wrong but my first guess would be that this should be the fix
mc:set_annotation(<<"x-delivery-count">>, DelCount, Msg);

Noticed this bug because no consumer can consume from a quorum queue that contains high delivery count and this error occurs

2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0> ** {function_clause,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>        [{mc_compat,set_annotation,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [delivery_count,1826,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>              {basic_message,
XXXXXXXXXXXXXXXXXXXXXX
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>                  <<>>,false}],
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"mc_compat.erl"},{line,61}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {rabbit_fifo_client,add_delivery_count_header,2,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"rabbit_fifo_client.erl"},{line,228}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {rabbit_fifo_client,'-transform_msgs/3-fun-0-',3,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"rabbit_fifo_client.erl"},{line,843}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {lists,map,2,[{file,"lists.erl"},{line,1559}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {rabbit_fifo_client,handle_delivery,4,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"rabbit_fifo_client.erl"},{line,777}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {rabbit_queue_type,handle_event,3,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"rabbit_queue_type.erl"},{line,588}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {rabbit_channel,handle_cast,2,
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>             [{file,"rabbit_channel.erl"},{line,699}]},
2024-09-26 15:33:43.440384+00:00 [error] <0.111012.0>         {gen_server2,handle_msg,2,[{file,"gen_server2.erl"},{line,1056}]}]}

Reproduction steps

1.Setup a quorum queue which has messages with high delivery count on RabbitMQ 4.0.2 server.
2.Try to consume from that queue with a client or a shovel.

Expected behavior

The message should be consumed, but it just causes an 541 error.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions