rabbitmq-server/release-notes/3.12.11.md

166 lines
5.9 KiB
Markdown

RabbitMQ `3.12.11` 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 Broker
#### Bug Fixes
* Quorum queue declared when one of cluster nodes was down could trigger
connection exceptions.
GitHub issue: [#10007](https://github.com/rabbitmq/rabbitmq-server/issues/10007)
* Avoids a rare exception that could stop TCP socket writes on a client connection.
GitHub issues: [#9991](https://github.com/rabbitmq/rabbitmq-server/issues/9991), [#9803](https://github.com/rabbitmq/rabbitmq-server/discussions/9803)
* `queue_deleted` and `queue_created` [internal events](https://rabbitmq.com/logging.html#internal-events) now include queue type as a module name,
and not an inconsistent (with the other queue and stream types) value `classic`.
GitHub issue: [#10142](https://github.com/rabbitmq/rabbitmq-server/pull/10142)
#### Enhancements
* Definition files that are virtual host-specific cannot be imported on boot. Such files will now be
detected early and the import process will terminate after logging a more informative message.
Previously the import process would run into an obscure exception.
GitHub issues: [#10068](https://github.com/rabbitmq/rabbitmq-server/issues/10068), [#10085](https://github.com/rabbitmq/rabbitmq-server/pull/10085)
### AMQP 1.0 Plugin
#### Bug Fixes
* Several AMQP 1.0 application properties are now more correctly converted
to AMQP 0-9-1 headers by cross-protocol Shovels.
The priority property now populates an AMQP 1.0 header with the same name,
per AMQP 1.0 spec.
This is a **potentially breaking change**.
Contributed by @luos (Erlang Solutions).
GitHub issues: [#10037](https://github.com/rabbitmq/rabbitmq-server/pull/10037), [#7508](https://github.com/rabbitmq/rabbitmq-server/issues/7508)
### Prometheus Plugin
#### Enhancements
* Metric label values now escape certain non-ASCII characters.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: [#10196](https://github.com/rabbitmq/rabbitmq-server/pull/10196)
### MQTT Plugin
#### Bug Fixes
* Avoids an exception when an MQTT client that used a QoS 0 subscription reconnects
and its original connection node is down.
GitHub issue: [#10205](https://github.com/rabbitmq/rabbitmq-server/pull/10205)
* Avoids an exception when an MQTT client connection was force-closed via the HTTP API.
GitHub issue: [#10140](https://github.com/rabbitmq/rabbitmq-server/pull/10140)
### CLI Tools
#### Bug Fixes
* Certain CLI commands could not be run in a shell script loop, unless the script explicitly
redirected standard input.
GitHub issue: [#10131](https://github.com/rabbitmq/rabbitmq-server/pull/10131)
#### Enhancements
* `rabbitmq-diagnostics cluster_status` now responds much quicker when a cluster node
has gone down, were shut down, or otherwise has become unreachable by the rest of the cluster.
GitHub issue: [#10126](https://github.com/rabbitmq/rabbitmq-server/pull/10126)
### Management Plugin
#### Bug Fixes
* Reverted a change to `DELETE /api/queues/{vhost}/{name}` that allowed removal of
exclusive queues and introduced unexpected side effects.
GitHub issue: [#10178](https://github.com/rabbitmq/rabbitmq-server/pull/10178)
* `DELETE /api/policies/{vhost}/{policy}` returned a 500 response instead of a 404 one
when target virtual host did not exist.
GitHub issue: [#9983](https://github.com/rabbitmq/rabbitmq-server/issues/9983)
* Avoid log noise when an HTTP API request is issued against a booting
or very freshly booted node.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: [#10187](https://github.com/rabbitmq/rabbitmq-server/pull/10187)
#### Enhancements
* HTTP API endpoints that involves contacting multiple nodes now respond much quicker when a cluster node
has gone down, were shut down, or otherwise has become unreachable by the rest of the cluster
GitHub issue: [#10123](https://github.com/rabbitmq/rabbitmq-server/pull/10123)
* Definition exported for just one virtual host cannot be imported at node boot time.
Now such files are detected early with a clear log message and immediate node boot process termination.
GitHub issues: [#10068](https://github.com/rabbitmq/rabbitmq-server/issues/10068), [#10072](https://github.com/rabbitmq/rabbitmq-server/pull/10072)
### AWS Peer Discovery Plugin
#### Enhancements
* Type spec and test corrections.
Contributed by @illotum (AWS).
GitHub issue: [#10134](https://github.com/rabbitmq/rabbitmq-server/pull/10134)
## Dependency Upgrades
* `osiris` was updated to [`1.7.2`](https://github.com/rabbitmq/osiris/releases)
## Source Code Archives
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.12.11.tar.xz`
instead of the source tarball produced by GitHub.