Evidence-linked product lifecycle intelligenceSUPPORT · SECURITY · RETIREMENT
← Lifecycle catalogue
RELEASE NOTESRABBITMQVERIFIED

PUBLISHER UPDATE · RABBITMQ-4.3.0

RABBITMQ-4.3.0 release notes and known issues

RabbitMQ 4.3.0

Scope: RabbitMQ. This update record adds version, fix and known-issue context. Its publication date is not a lifecycle boundary.

Summary

RabbitMQ 4.3.0 is a new feature release. Breaking Changes and Compatibility Notes Mnesia and Parition Handling Strategies are Removed Since only 4.2.x clusters can upgrade to 4.3.0 in place , this won't be a breaking change for nearly all instalations but it will affect community plugins that use Mnesia. All partition handling-related keys in rabbitmq.conf will be accepted by 4.3.0 nodes but won't have any effect: cluster_partition_handling cluster_partition_handling.pause_if_all_down.recover cluster_partition_handling.pause_if_all_down.nodes.$name Team RabbitMQ recommends removing the above keys from rabbitmq.conf before or shortly after upgrading. Deprecated Features are Now Disabled by Default A number of deprecated features are now disabled by default and require the user to opt-in in order to use them. This includes non-durable (transient) non-exclusive queues: attempts to declare a queue with such property combination will be rejected by default. Use durable queues, transient exclusive queues, or durable queues with a queue TTL instead. To explicitly allow transient non-exclusive queues, make sure that all nodes in the cluster include the following rabbitmq.conf key and were restarted so that all nodes have a consistent view of the deprecated feature settings: # Enables deprecated non-durable (transient) non-exclusive queues # (disabled by default as of RabbitMQ `4.3.0`, will be removed in a later version). # # Must be effective on all cluster nodes BEFORE # the cluster is upgraded to `4.3.0`. # If only some nodes have the setting configured, it will not have the desired effect. deprecated_features.permit.transient_nonexcl_queues = true If only some nodes have setting configured, it will not have the desired effect. Classic Queues v1 Storage (CQv1) is Removed This release removes the original classic queue storage implementation these days known as CQv1. A 2nd generation implementation called CQv2 has been adopted as the default starting with 4.2.0 . This means that attempts to declare a queue using the following optional queue arguments will fail: x-queue-mode set to any value x-queue-version set to 1 Existing classic queues upgraded to CQv2 during an earlier upgrade to 4.2.x will continue operating as usual. Consumer Timeouts are No Longer Evaluated for Classic Queues and Streams This release moves consumer timeout handling responsibility into the queues themselves. Also, all protocols (except for the stream protocol) now evaluate consumer timeout for queue types that support them. Classic queues and streams never evaluate consumer timeouts as their use cases largely avoid the need for such as feature. Release Highlights Khepri is Now The Only Metadata Store As of this release, Khepri is the only metadata store supported by RabbitMQ: Mnesia was removed completely. In practical operational terms, this means that For a cluster to be available, a majority of nodes must be online at all times Failure and partition recovery in a RabbitMQ cluster is now significantly simpler and uniform: all components that have replicated state (Khepri, quorum queues, streams) recover per Raft recovery semantics Quorum Queues Enhancements This release upgrades the Ra dependency to 3.x and introduces a new (8th) version of the quorum queue state machine with several new features and optimisations: Strict priority queues with per-priority message counts, correct redelivery ordering, and priority-aware message expiration Delayed retry for quorum queues: configurable increasing backoff when messages are returned Consumer timeout for quorum queues: configurable timeout for unacknowledged messages, with protocol-specific handling for AMQP 1.0 and MQTT Recovery snapshots and snapshot throttling to reduce recovery time and improve snapshotting decisions Memory optimisations including compact message references, optimised tuple storage for delayed keys, and removal of rabbit_fifo_index usage Upgrading to 4.3.0 Documentation Guides on Upgrades See th

Improvements and security content

  • RabbitMQ 4.3.0 is a new feature release. Breaking Changes and Compatibility Notes Mnesia and Parition Handling Strategies are Removed Since only 4.2.x clusters can upgrade to 4.3.0 in place , this won't be a breaking change for nearly all instalations but it will affect community plugins that use Mnesia. All partition handling-related keys in rabbitmq.conf will be accepted by 4.3.0 nodes but won't have any effect: cluster_partition_handling cluster_partition_handling.pause_if_all_down.recover cluster_partition_handling.pause_if_all_down.nodes.$name Team RabbitMQ recommends removing the above keys from rabbitmq.conf before or shortly after upgrading. Deprecated Features are Now Disabled by Default A number of deprecated features are now disabled by default and require the user to opt-in in order to use them. This includes non-durable (transient) non-exclusive queues: attempts to declare a queue with such property combination will be rejected by default. Use durable queues, transient exclusive queues, or durable queues with a queue TTL instead. To explicitly allow transient non-exclusive queues, make sure that all nodes in the cluster include the following rabbitmq.conf key and were restarted so that all nodes have a consistent view of the deprecated feature settings: # Enables deprecated non-durable (transient) non-exclusive queues # (disabled by default as of RabbitMQ `4.3.0`, will be removed in a later version). # # Must be effective on all cluster nodes BEFORE # the cluster is upgraded to `4.3.0`. # If only some nodes have the setting configured, it will not have the desired effect. deprecated_features.permit.transient_nonexcl_queues = true If only some nodes have setting configured, it will not have the desired effect. Classic Queues v1 Storage (CQv1) is Removed This release removes the original classic queue storage implementation these days known as CQv1. A 2nd generation implementation called CQv2 has been adopted as the default starting with 4.2.0 . This means that attempts to declare a queue using the following optional queue arguments will fail: x-queue-mode set to any value x-queue-version set to 1 Existing classic queues upgraded to CQv2 during an earlier upgrade to 4.2.x will continue operating as usual. Consumer Timeouts are No Longer Evaluated for Classic Queues and Streams This release moves consumer timeout handling responsibility into the queues themselves. Also, all protocols (except for the stream protocol) now evaluate consumer timeout for queue types that support them. Classic queues and streams never evaluate consumer timeouts as their use cases largely avoid the need for such as feature. Release Highlights Khepri is Now The Only Metadata Store As of this release, Khepri is the only metadata store supported by RabbitMQ: Mnesia was removed completely. In practical operational terms, this means that For a cluster to be available, a majority of nodes must be online at all times Failure and partition recovery in a RabbitMQ cluster is now significantly simpler and uniform: all components that have replicated state (Khepri, quorum queues, streams) recover per Raft recovery semantics Quorum Queues Enhancements This release upgrades the Ra dependency to 3.x and introduces a new (8th) version of the quorum queue state machine with several new features and optimisations: Strict priority queues with per-priority message counts, correct redelivery ordering, and priority-aware message expiration Delayed retry for quorum queues: configurable increasing backoff when messages are returned Consumer timeout for quorum queues: configurable timeout for unacknowledged messages, with protocol-specific handling for AMQP 1.0 and MQTT Recovery snapshots and snapshot throttling to reduce recovery time and improve snapshotting decisions Memory optimisations including compact message references, optimised tuple storage for delayed keys, and removal of rabbit_fifo_index usage Upgrading to 4.3.0 Documentation Guides on Upgrades See th

Known issues

Publisher statement

Not stated. The verified publisher record does not contain a known-issues statement.

Affected products and versions

Products

  • RabbitMQ

Affected versions

  • 4.3.0
  • 4.2
  • 4.2.0
  • 1.0

Fixed versions or updates

  • No fixed version is stated in this record.

Recommended action

Review the official publisher document before deployment.

Official publisher evidence