diff --git a/release-notes/3.12.14.md b/release-notes/3.12.14.md new file mode 100644 index 000000000000..1b84fb708328 --- /dev/null +++ b/release-notes/3.12.14.md @@ -0,0 +1,112 @@ +RabbitMQ `3.12.14` is a maintenance release in the `3.12.x` [release series](https://www.rabbitmq.com/versions.html). + +This release [goes out of community support](https://www.rabbitmq.com/release-information) on June 1st, 2024. + +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.2.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 queues are now more defensive when acquiring file handles. + + GitHub issue: [#10587](https://github.com/rabbitmq/rabbitmq-server/pull/10587) + +#### Enhancements + + * There is now a way to configure default queue type globally (that is, not per virtual host) + in `rabbitmq.conf`: + + ``` ini + # Built-in type aliases are "quorum", "classic", "stream" + default_queue_type = quorum + ``` + + Contributed by @SimonUnge. + + GitHub issue: [#11165](https://github.com/rabbitmq/rabbitmq-server/pull/11165) + + + * `channel_max_per_node` is a new per-node limit that allows to put a cap on the number + of AMQP 0-9-1 channels that can be concurrently open by all clients connected to a node: + + ``` ini + # rabbitmq.conf + channel_max_per_node = 5000 + ``` + + This is a guardrail mean to protect nodes from [application-level channel leaks](https://www.rabbitmq.com/docs/channels#channel-leaks). + + Contributed by @illotum. + + GitHub issue: [#10754](https://github.com/rabbitmq/rabbitmq-server/pull/10754) + + * [Definition import](https://www.rabbitmq.com/docs/definitions) did not handle a scenario where some virtual hosts did not have + the default queue type metadata key set. + + GitHub issue: [#10897](https://github.com/rabbitmq/rabbitmq-server/pull/10897) + + +### AMQP 1.0 Plugin + +#### Bug Fixes + + * Safer AMQP 1.0 => AMQP 0-9-1 message durability property conversion. + + GitHub issue: [#10568](https://github.com/rabbitmq/rabbitmq-server/pull/10568) + + +### Management Plugin + +#### Bug Fixes + + * Set default `sort` query parameter value for better compatibility with an external + Prometheus scraper. Note that the [built-in Prometheus plugin](https://www.rabbitmq.com/docs/prometheus) + is the recommended way of [monitoring](https://www.rabbitmq.com/docs/monitoring) RabbitMQ using Prometheus-compatible tools. + + GitHub issue: [#10610](https://github.com/rabbitmq/rabbitmq-server/pull/10610) + + * When a tab (Connections, Queues and Streams, etc) is switched, a table configuration pane + from the previously selected tab is now hidden. + + Contributed by @ackepenek. + + GitHub issue: [#10799](https://github.com/rabbitmq/rabbitmq-server/pull/10799) + + +### JMS Topic Exchange Plugin + +#### Enhancements + + * The plugin now stores its state on multiple nodes. + + GitHub issue: [#11098](https://github.com/rabbitmq/rabbitmq-server/pull/11098) + + +### Dependency Changes + + * `cowboy` was updated to [`2.12.0`](https://ninenines.eu/docs/en/cowboy/2.12/guide/migrating_from_2.11/) + +## Source Code Archives + +To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.12.14.tar.xz` +instead of the source tarball produced by GitHub.