2023-09-28 03:00:31 +08:00
RabbitMQ `3.12.7` is a maintenance release in the `3.12.x` [release series ](https://www.rabbitmq.com/versions.html ).
Please refer to the upgrade section from the [3.12.0 release notes ](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.12.0 )
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 ](https://www.rabbitmq.com/which-erlang.html ) has more details on
Erlang version requirements for RabbitMQ.
### Minimum Supported Erlang Version
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 ](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.12.0 ) first.
## Changes Worth Mentioning
Release notes can be found on GitHub at [rabbitmq-server/release-notes ](https://github.com/rabbitmq/rabbitmq-server/tree/v3.12.x/release-notes ).
### Core Server
#### Bug Fixes
2023-10-12 11:31:47 +08:00
* Stream replication connections configured to use exclusively TLSv1.3 failed.
GitHub issue:[#9678](https://github.com/rabbitmq/rabbitmq-server/pull/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 ](https://github.com/rabbitmq/rabbitmq-server/pull/9678 )
2023-09-28 03:00:31 +08:00
* `default_policies.*.queue_pattern` definition in `rabbitmq.conf` was incorrectly parsed.
Contributed by @SimonUnge (AWS).
GitHub issue: [#9545 ](https://github.com/rabbitmq/rabbitmq-server/pull/9545 )
2023-10-17 23:10:27 +08:00
* Avoid log noise when inter-node connections frequently fail and recover.
Contributed by @Ayanda -D.
GitHub issue: [#9667 ](https://github.com/rabbitmq/rabbitmq-server/pull/9667 )
2023-09-28 03:00:31 +08:00
#### Enhancements
2023-10-12 11:31:47 +08:00
* Optimized stream index scans. Longer scans could result in some replicas stopping
with a timeout.
GitHub issue:[#9678](https://github.com/rabbitmq/rabbitmq-server/pull/9678)
2023-09-28 03:00:31 +08:00
* Classic queue storage version is now a supported key for [operator policies ](https://rabbitmq.com/parameters.html#operator-policies ).
2023-10-12 11:31:47 +08:00
Contributed by @SignalWhisperer (AWS).
2023-09-28 03:00:31 +08:00
GitHub issue: [#9548 ](https://github.com/rabbitmq/rabbitmq-server/pull/9548 )
2023-10-17 23:10:27 +08:00
* [Queue length limit ](https://rabbitmq.com/maxlength.html ) overflow behavior now can be configured via [operator policies ](https://rabbitmq.com/parameters.html#operator-policies ).
2023-09-28 03:00:31 +08:00
2023-10-12 11:31:47 +08:00
Contributed by @SimonUnge (AWS).
GitHub issue: [#9636 ](https://github.com/rabbitmq/rabbitmq-server/issues/9636 )
2023-09-28 03:00:31 +08:00
2023-10-12 11:31:47 +08:00
### CLI Tools
2023-10-17 23:10:27 +08:00
#### Bug Fixes
* `rabbitmq-streams list_stream_consumer_groups` incorrectly validated the set of columns it accepts.
GitHub issue: [#9671 ](https://github.com/rabbitmq/rabbitmq-server/pull/9671 )
2023-10-12 11:31:47 +08:00
#### Enhancements
2023-10-12 11:35:33 +08:00
* 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 ](https://github.com/rabbitmq/rabbitmq-server/issues/9582 )
2023-10-12 11:31:47 +08:00
* `rabbitmqctl add_user` now can accept a [pre-generated salted password ](https://rabbitmq.com/passwords.html ) instead
of a plain text password, both as a positional argument and via standard input:
``` shell
# 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 ](https://github.com/rabbitmq/rabbitmq-server/issues/9669 )
### Management Plugin
2023-10-17 23:10:27 +08:00
#### Bug Fixes
* Message consumption with the "Nack message, requeue: true" option did not actually requeue deliveries.
GitHub issue: [#9715 ](https://github.com/rabbitmq/rabbitmq-server/pull/9715 )
2023-10-12 11:31:47 +08:00
#### Enhancements
2023-09-28 03:00:31 +08:00
2023-10-17 23:10:27 +08:00
* 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 ](https://rabbitmq.com/definitions.html#import ),
will now reject larger transfers with a `400 Bad Request` response.
GitHub issue: [#9708 ](https://github.com/rabbitmq/rabbitmq-server/pull/9708 )
2023-09-28 03:00:31 +08:00
* `DELETE /api/queues/{vhost}/{name}` now can delete exclusive queues.
GitHub issue: [#8758 ](https://github.com/rabbitmq/rabbitmq-server/issues/8758 )
* Key supported by operator policies are now grouped by queue type in the UI.
GitHub issue: [#9544 ](https://github.com/rabbitmq/rabbitmq-server/pull/9544 )
2023-10-12 11:31:47 +08:00
### MQTT Plugin
2023-09-28 03:00:31 +08:00
2023-10-12 11:31:47 +08:00
#### Enhancements
2023-09-28 03:00:31 +08:00
* Improved data safety for confirms in environments where the plugin uses classic queues.
GitHub issue: [#9530 ](https://github.com/rabbitmq/rabbitmq-server/pull/9530 )
2023-10-17 23:10:27 +08:00
### Web MQTT Plugin
#### Bug Fixes
* Avoid an exception when a not fully established MQTT-over-WebSockets connection terminated.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: [#9654 ](https://github.com/rabbitmq/rabbitmq-server/pull/9654 )
2023-10-12 11:31:47 +08:00
### JMS Topic Exchange Plugin
2023-09-28 03:00:31 +08:00
#### Bug Fixes
* Recovery of bindings of durable queues bound to a transient JMS topic exchange failed.
GitHub issue: [#9533 ](https://github.com/rabbitmq/rabbitmq-server/issues/9533 )
2023-10-12 11:31:47 +08:00
### Sharding Plugin
2023-09-28 03:00:31 +08:00
#### Bug Fixes
* Recovery of bindings of durable queues bound to a transient `x-modulo-hash` exchange failed.
GitHub issue: [#9533 ](https://github.com/rabbitmq/rabbitmq-server/issues/9533 )
2023-10-12 11:31:47 +08:00
### Recent History Exchange Plugin
2023-09-28 03:00:31 +08:00
#### Bug Fixes
* Recovery of bindings of durable queues bound to a transient recent history exchange failed.
GitHub issue: [#9533 ](https://github.com/rabbitmq/rabbitmq-server/issues/9533 )
## Dependency Upgrades
2023-10-14 13:58:08 +08:00
* `osiris` has been upgraded to [`1.6.9` ](https://github.com/rabbitmq/osiris/releases )
2023-09-28 03:00:31 +08:00
## Source Code Archives
To 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.