RabbitMQ 3.13.7
is a maintenance release in the 3.13.x
release series.
This upgrade is highly recommended to all users currently on earlier 3.13.x
series and
in particular between 3.13.3
and 3.13.5
, inclusive.
Starting June 1st, 2024, community support for this series will only be provided to regularly contributing users and those
who hold a valid commercial support license.
Please refer to the upgrade section from the 3.13.0 release notes
if upgrading from a version prior to 3.13.0.
This release requires Erlang 26 and supports Erlang versions up to 26.2.x
.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Minimum Supported Erlang Version
As of 3.13.0, RabbitMQ requires Erlang 26. Nodes will fail to start on older Erlang releases.
Users upgrading from 3.12.x (or older releases) on Erlang 25 to 3.13.x on Erlang 26
(both RabbitMQ and Erlang are upgraded at the same time) must consult
the v3.12.0 release notes and v3.13.0 release notes first.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Broker
Bug Fixes
-
Streams recover better from certain node process failures that may leave behind orphaned segment files
(that is, segment files that do not have a corresponding index file) or index files without a corresponding
segment file.Kudos to @sysupbda for providing detailed reproduction steps and verifying the fix in the affected environment.
GitHub issue: #12073
-
Config file peer discovery now logs warnings for certain common user mistakes.
-
Queue declaration operations now return more useful errors when Khepri is enabled and there's only a minority
of nodes online. -
Logging is now more defensive around exception handling. Previously a (very rare) logger exception could
lead to theamq.rabbitmq.log
handler and exchange to be removed.Contributed by @gomoripeti.
GitHub issue: #12107
-
rabbitmq-upgrade revive
unintentionally tried to perform operations on replicas that are not local to the node.
This could result in an exceptions some of which were not handled and the command failed.
Re-running the command usually helped.GitHub issue: #12038
Enhancements
-
Enabling an experimental feature flag now involves an explicit confirmation.
GitHub issue: #12059
-
Khepri projections are registered in a safer manner during node boot.
GitHub issue: #11837
MQTT
Bug Fixes
-
Clients that use JWT tokens are now disconnected when their token expires. Previously all newly attempted
operations with an expired token would be rejected but a completely passive connection was not closed.GitHub issue: #11869
Enhancements
-
Connection that provide incorrect credentials now closed with a delay, just like for several
other protocols supported by RabbitMQ, as a throttling mechanism.GitHub issue: #11906
CLI Tools
Bug Fixes
-
When the Khepri feature flag is not enabled,
rabbitmq-diagnostics metadata_store_status
will not try to retrieve
and display its status.GitHub issue: #12103
Enhancements
-
rabbitmq-upgrade await_quorum_plus_one
now produces more log messages when the operation times out.
When Khepri is enabled, it now also treats Khepri as a critical Raft-based component that may depend on replica quorum
just like queues and streams do.GitHub issue: #12117
Management Plugin
Bug Fixes
-
When no virtual host limits are set, the limits collection was returned as a JSON array (and not a JSON object)
byGET /api/vhost-limits
.GitHub issue: #12084
Enhancements
-
GET /api/queues/quorum/{vhost}/{name}/status
is a new endpoint that allows clients to retrieve several key quorum queue
replica and Raft metrics.Contributed by @SimonUnge.
GitHub issue: #12072
Shovel Plugin
Bug Fixes
-
GET /api/shovels/{vhost}/{name}
now correctly returns a single shovel instead of all shovels in the target
virtual host.GitHub issue: #12040
Consistent Hashing Exchange Plugin
Bug Fixes
-
For an exchange declared with a
hash-header
, publishing failed with an exception when the client (usually unintentionally)
did not set that header.GitHub issue: #11808
Dependency Changes
- Osiris was upgraded to
1.8.3
- Cuttlefish was upgraded to
3.4.0
observer_cli
was upgraded to1.7.5
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.13.7.tar.xz
instead of the source tarball produced by GitHub.