release-notes/3.12.7.md
RabbitMQ 3.12.7 is a maintenance release in the 3.12.x release series.
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.
Stream replication connections configured to use exclusively TLSv1.3 failed.
GitHub issue:#9678
On startup, stream replicas will handle one more potential case of segment file corruption after an unclean shutdown.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: #9678
default_policies.*.queue_pattern definition in rabbitmq.conf was incorrectly parsed.
Contributed by @SimonUnge (AWS).
GitHub issue: #9545
Avoid log noise when inter-node connections frequently fail and recover.
Contributed by @Ayanda-D.
GitHub issue: #9667
Optimized stream index scans. Longer scans could result in some replicas stopping with a timeout.
GitHub issue:#9678
Classic queue storage version is now a supported key for operator policies.
Contributed by @SignalWhisperer (AWS).
GitHub issue: #9548
Queue length limit overflow behavior now can be configured via operator policies.
Contributed by @SimonUnge (AWS).
GitHub issue: #9636
rabbitmq-streams list_stream_consumer_groups incorrectly validated the set of columns it accepts.
GitHub issue: #9671
Several list_stream_* commands (available via both rabbitmq-diagnostics and rabbitmq-streams) commands now can
display replica node in addition to other fields.
GitHub issue: #9582
rabbitmqctl add_user now can accept a pre-generated salted password instead
of a plain text password, both as a positional argument and via standard input:
# This is just an example, DO NOT use this value in production!
# The 2nd argument is a Base64-encoded pre-hashed and salted value of "guest4"
rabbitmqctl -- add_user "guest4" "BMT6cj/MsI+4UOBtsPPQWpQfk7ViRLj4VqpMTxu54FU3qa1G" --pre-hashed-password
# try authenticating with a pair of credentials
rabbitmqctl authenticate_user "guest4" "guest4"
GitHub issue: #9669
Message consumption with the "Nack message, requeue: true" option did not actually requeue deliveries.
GitHub issue: #9715
HTTP API request body size is now limited to 10 MiB by default.
Two endpoints, one that accepts messages for publishing (note: publishing over the HTTP API is greatly discouraged)
and another for definition import,
will now reject larger transfers with a 400 Bad Request response.
GitHub issue: #9708
DELETE /api/queues/{vhost}/{name} now can delete exclusive queues.
GitHub issue: #8758
Key supported by operator policies are now grouped by queue type in the UI.
GitHub issue: #9544
Improved data safety for confirms in environments where the plugin uses classic queues.
GitHub issue: #9530
Avoid an exception when a not fully established MQTT-over-WebSockets connection terminated.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: #9654
Recovery of bindings of durable queues bound to a transient JMS topic exchange failed.
GitHub issue: #9533
Recovery of bindings of durable queues bound to a transient x-modulo-hash exchange failed.
GitHub issue: #9533
Recovery of bindings of durable queues bound to a transient recent history exchange failed.
GitHub issue: #9533
osiris has been upgraded to 1.6.9To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.12.7.tar.xz
instead of the source tarball produced by GitHub.