Skip to content

Commit

Permalink
More 4.0 release notes updates post-#11937
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelklishin committed Sep 7, 2024
1 parent e7296c1 commit c2bb67a
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions release-notes/4.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,18 @@ on how to migrate to quorum queues for the parts of the system that really need
Quorum queues now have a default [redelivery limit](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling) set to `20`.
Messages that are redelivered 20 times or more will be [dead-lettered](https://www.rabbitmq.com/docs/dlx) or dropped (removed).

This limit is necessary to protect nodes from consumers that run into infinite crash-requeue-crash-requeue loops. Such
This limit is necessary to protect nodes from consumers that run into infinite fail-requeue-fail-requeue loops. Such
consumers can drive a node out of disk space by making a quorum queue Raft log grow forever without allowing compaction
of older entries.

If 20 deliveries per message is a common scenario for a queue, a dead-lettering target must be configured
for such queues. The recommended way of doing that is via a [policy](https://www.rabbitmq.com/docs/parameters#policies).

The limit can be [increased](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling) using a policy.
This option is recommended against: usually the presence of messages that have been redelivered 20 times or more suggests
that a consumer has entered a fail-requeue-fail-requeue loop, in which case even a much higher limit
won't help avoid the dead-lettering.

### CQv1 Storage Implementation was Removed

CQv1, [the original classic queue storage layer, was removed](https://github.com/rabbitmq/rabbitmq-server/pull/10656)
Expand Down Expand Up @@ -167,13 +172,18 @@ periods of time (no more than a few hours).

### Recommended Post-upgrade Procedures

#### Configure Dead Lettering for Frequently Redelivered Messages
#### Configure Dead Lettering or Increase the Limit for Frequently Redelivered Messages

In environments where messages can experience 20 redeliveries, the affected queues should have [dead lettering](https://www.rabbitmq.com/docs/dlx)
configured (usually via a [policy](https://www.rabbitmq.com/docs/parameters#policies)) to make sure
that messages that are redelivered 20 times are moved to a separate queue (or stream) instead of
being dropped (removed) by the [crash-requeue-redelivery loop protection mechanism](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling).

Alternatively, the limit can be [increased](https://www.rabbitmq.com/docs/next/quorum-queues#poison-message-handling) using a policy.
This option is recommended against: usually the presence of messages that have been redelivered 20 times or more suggests
that a consumer has entered a fail-requeue-fail-requeue loop, in which case even a much higher limit
won't help avoid the dead-lettering.


## Changes Worth Mentioning

Expand Down

0 comments on commit c2bb67a

Please sign in to comment.