release-notes/3.12.5.md
RabbitMQ 3.12.5 is a maintenance release in the 3.12.x release series.
All users are encouraged to skip this version in favor of 3.12.6.
Please refer to the upgrade section from the 3.12.0 release notes if upgrading from a version prior to 3.12.0.
This release requires Erlang 25 and supports Erlang versions up to 26.1.x.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
As of 3.12.0, RabbitMQ requires Erlang 25. Nodes will fail to start on older Erlang releases.
Users upgrading from 3.11.x (or older releases) on Erlang 25 to 3.12.x on Erlang 26 (both RabbitMQ and Erlang are upgraded at the same time) must consult the v3.12.0 release notes first.
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Quorum queue leader changes are now correctly observed in certain network failure scenarios.
High consumer churn with reused consumer tag on quorum queues could result in some messages not being delivered after a period of time.
This did not affect environments where consumer churn does not exist or where it does but consumer tags vary.
GitHub issue: #9158
Three environment variables, LOG_BASE, MNESIA_BASE, CONFIG_FILE, were not picked up when set in
rabbitmq-env-conf.bat on Windows.
Gi9158issue: #9307
Avoids a potential exception when autoheal partition handling process was initiated.
GitHub issue: #9222
Avoids a potential exception in the credit flow subsystem.
Contributed by @Ayanda-D.
GitHub issue: #9433
Classic queues v2 (CQv2) that had priorities enabled were reporting their storage version incorrectly.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: #9370
Channels that had many thousands of consumers (usually due to a consumer leak in the application) now consume a lot less CPU resources when the channel is closed.
As part of this optimization, individual consumer.deleted internal events are no
longer emitted when a channel is closed, only a channel.closed event is. This also
help reduce audit event log size, since those consumer.deleted events provided
no useful information in this context.
Contributed by @SimonUnge (AWS).
GitHub issue: #9356
Initial forward compatibility with later Erlang 26.x and 27.0 releases.
GitHub issue: #9485
Nodes now log boot time at info level instead of debug. This piece of information can be useful during root cause analysis.
Contributed by @johanrhodin (CloudAMQP).
GitHub issue: #9466
Channel interceptors (defined by plugins) now can return one more type of errors.
Contributed by @Ayanda-D.
GitHub issue: #9459
rabbitmqctl delete_queue now handles more queue replica failure scenarios
(that were previously handled by client operations and the HTTP API but not CLI tools).
Contributed by @Ayanda-D.
GitHub issue: #9324
rabbitmq-streams delete_replica now handles scenarios where the replica is hosted
on a node that is not accessiable (reachable).
GitHub issue: #9282
If a socket write fails, close the connection quickly to avoid producing a lot of log noise.
GitHub issue: #9281
Listing AMQP 1.0 connections in a system that had both AMQP 1.0 and AMQP 0-9-1 clients connected resulted in exceptions logged and partial results returned to CLI tools.
GitHub issue: #9371
The plugin now exposes a new gauge, rabbitmq_unreachable_cluster_peers_count, that indicates how many cluster
peers cannot be reached by this node.
Contributed by @gomoripeti (CloudAMQP).
osiris was upgraded to 1.6.7None in this release.
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.12.5.tar.xz
instead of the source tarball produced by GitHub.