Skip to content

Commit f00d38a

Browse files
Update 3.13.0 release notes
1 parent 65ab2be commit f00d38a

File tree

1 file changed

+147
-4
lines changed

1 file changed

+147
-4
lines changed

release-notes/3.13.0.md

Lines changed: 147 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
## RabbitMQ 3.13.0-rc.4
1+
## RabbitMQ 3.13.0-rc.5
22

3-
RabbitMQ `3.13.0-rc.4` is a candidate of a new feature release.
3+
RabbitMQ `3.13.0-rc.5` is a candidate of a new feature release.
44

55
## Highlights
66

@@ -261,21 +261,28 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
261261

262262
* Classic queue storage v2 (CQv2) has matured and is now recommended for all users.
263263

264-
We recommend switching classic queues to CQv2 after **all cluster nodes** have been upgrades,
264+
We recommend switching classic queues to CQv2 after **all cluster nodes** have been upgraded to 3.13.0,
265265
at first using policies, and then eventually using a setting in `rabbitmq.conf`. Upgrading
266266
classic queues to CQv2 at boot time using the configuration file setting can be
267267
potentially unsafe in environments where deprecated classic mirrored queues still exist.
268268

269269
For new clusters, adopt CQv2 from the start by setting `classic_queue.default_version` in `rabbitmq.conf`:
270270

271271
``` ini
272+
# only set this value for new clusters or after all nodes have been upgraded to 3.13
272273
classic_queue.default_version = 2
273274
```
274275

275276
* Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
276277

277278
GitHub issue: [#6090](https://github.com/rabbitmq/rabbitmq-server/pull/6090), [#8507](https://github.com/rabbitmq/rabbitmq-server/pull/8507)
278279

280+
* When a non-mirrored classic queue is declared, its placement node
281+
is now selected with less interaction with cluster peers, speeding up the process
282+
when some nodes have recently gone down.
283+
284+
GitHub issue: [#10102](https://github.com/rabbitmq/rabbitmq-server/pull/10102)
285+
279286
* A subsystem for marking features as deprecated.
280287

281288
GitHub issue: [#7390](https://github.com/rabbitmq/rabbitmq-server/pull/7390)
@@ -287,6 +294,45 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
287294

288295
GitHub issues: [#8834](https://github.com/rabbitmq/rabbitmq-server/pull/8834), [#8927](https://github.com/rabbitmq/rabbitmq-server/pull/8927)
289296

297+
* Classic queue storage version now can be set via [operator policies](https://rabbitmq.com/parameters.html#operator-policies).
298+
299+
Contributed by @SimonUnge (AWS).
300+
301+
GitHub issue: [#9541](https://github.com/rabbitmq/rabbitmq-server/pull/9541)
302+
303+
* `channel_max_per_node` allows limiting how many channels a node would allow clients to open, in total.
304+
305+
This limit is easier to reason about than the per-node connection limit multiplied by `channel_max` (a per-connection limit for channels).
306+
307+
Contributed by @SimonUnge (AWS).
308+
309+
GitHub issue: [#10351](https://github.com/rabbitmq/rabbitmq-server/pull/10351)
310+
311+
* `disk_free_limit.absolute` and vm_memory_high_watermark.absolute` now support more information units: `Mi`, `Gi`, `TB`, `Ti`, `PB`, `Pi`.
312+
313+
In addition, there were some renaming of the existing keys:
314+
315+
* `K` now means "kilobyte" and not "kibibyte"
316+
* `M` now means "megabyte" and not "mebibyte"
317+
* `G` now means "gigabyte" and not "gibibyte"
318+
319+
There is no consensus on how these single letter suffixes should be interpreted (as their power of 2 or power of 10 variants),
320+
so RabbitMQ has adopted a widely used [convention adopted by Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-memory).
321+
322+
GitHub issues: [#10310](https://github.com/rabbitmq/rabbitmq-server/issues/10310), [#10348](https://github.com/rabbitmq/rabbitmq-server/pull/10348)
323+
324+
* Improved efficiency of definition imports in environments with a lot of virtual hosts.
325+
326+
Contributed by @AyandaD.
327+
328+
GitHub issue: [#10320](https://github.com/rabbitmq/rabbitmq-server/pull/10320)
329+
330+
* When a [consumer delivery timeout](https://rabbitmq.com/consumers.html#acknowledgement-timeout) hits, a more informative message is now logged.
331+
332+
Contributed by @rluvaton.
333+
334+
GitHub issue: [#10446](https://github.com/rabbitmq/rabbitmq-server/pull/10446)
335+
290336
#### Bug Fixes
291337

292338
This release includes all bug fixes shipped in the `3.12.x` series.
@@ -299,12 +345,43 @@ This release includes all bug fixes shipped in the `3.12.x` series.
299345

300346
GitHub issue: [#8491](https://github.com/rabbitmq/rabbitmq-server/pull/8491)
301347

348+
* Feature flag state is now persisted in a safer way during node shutdown.
349+
350+
GitHub issue: [#10279](https://github.com/rabbitmq/rabbitmq-server/pull/10279)
351+
352+
* Feature flag synchronization between nodes now avoids a potential race condition.
353+
354+
GitHub issue: [#10027](https://github.com/rabbitmq/rabbitmq-server/pull/10027)
355+
302356
* The state of node maintenance status across the cluster is now replicated. It previously was accessible
303357
to all nodes but not replicated.
304358

305359
GitHub issue: [#9005](https://github.com/rabbitmq/rabbitmq-server/pull/9005)
306360

307361

362+
### CLI Tools
363+
364+
#### Deprecations
365+
366+
* `rabbitmqctl rename_cluster_node` and `rabbitmqctl update_cluster_nodes` are now no-ops.
367+
368+
They were not safe to use with quorum queues and streams, and are completely incompatible with Khepri.
369+
370+
GitHub issue: [#10369](https://github.com/rabbitmq/rabbitmq-server/pull/10369)
371+
372+
#### Enhancements
373+
374+
* `rabbitmq-diagnostics cluster_status` now responds significantly faster when some cluster
375+
nodes are not reachable.
376+
377+
GitHub issue: [#10101](https://github.com/rabbitmq/rabbitmq-server/pull/10101)
378+
379+
* `rabbitmqctl list_deprecated_features` is a new command that lists deprecated features
380+
that are deprecated used on the target node.
381+
382+
GitHub issues: [#9901](https://github.com/rabbitmq/rabbitmq-server/pull/9901), [#7390](https://github.com/rabbitmq/rabbitmq-server/pull/7390)
383+
384+
308385
### Management Plugin
309386

310387
#### Enhancements
@@ -328,6 +405,12 @@ This release includes all bug fixes shipped in the `3.12.x` series.
328405

329406
GitHub issues: [#9437](https://github.com/rabbitmq/rabbitmq-server/issues/9437), [#9578](https://github.com/rabbitmq/rabbitmq-server/pull/9578), [#9633](https://github.com/rabbitmq/rabbitmq-server/pull/9633)
330407

408+
#### Bug Fixes
409+
410+
* `GET /api/nodes/{name}` failed with a 500 when called with a non-existed node name.
411+
412+
GitHub issue: [#10330](https://github.com/rabbitmq/rabbitmq-server/issues/10330)
413+
331414

332415
### Stream Plugin
333416

@@ -341,6 +424,25 @@ This release includes all bug fixes shipped in the `3.12.x` series.
341424

342425
GitHub issue: [#8207](https://github.com/rabbitmq/rabbitmq-server/pull/8207)
343426

427+
* Stream connections now support JWT (OAuth 2) token renewal. The renewal is client-initiated
428+
shortly before token expiry. Therefore, this feature requires stream protocol clients to be updated.
429+
430+
GitHub issue: [#9187](https://github.com/rabbitmq/rabbitmq-server/pull/9187)
431+
432+
* Stream connections are now aware of JWT (OAuth 2) token expiry.
433+
434+
GitHub issue: [#10292](https://github.com/rabbitmq/rabbitmq-server/issues/10292)
435+
436+
#### Bug Fixes
437+
438+
* Stream (replica) membership changes safety improvements.
439+
440+
GitHub issue: [#10331](https://github.com/rabbitmq/rabbitmq-server/pull/10331)
441+
442+
* Stream protocol connections now complies with the connection limit in target virtual host.
443+
444+
GitHub issue: [#9946](https://github.com/rabbitmq/rabbitmq-server/pull/9946)
445+
344446

345447
### MQTT Plugin
346448

@@ -350,6 +452,10 @@ This release includes all bug fixes shipped in the `3.12.x` series.
350452

351453
GitHub issues: [#7263](https://github.com/rabbitmq/rabbitmq-server/pull/7263), [#8681](https://github.com/rabbitmq/rabbitmq-server/pull/8681)
352454

455+
* MQTT clients that use QoS 0 now can reconnect more reliably when the node they were connected to fails.
456+
457+
GitHub issue: [#10203](https://github.com/rabbitmq/rabbitmq-server/pull/10203)
458+
353459
* Negative message acknowledgements are now propagated to MQTTv5 clients.
354460

355461
GitHub issue: [#9034](https://github.com/rabbitmq/rabbitmq-server/pull/9034)
@@ -370,10 +476,47 @@ This release includes all bug fixes shipped in the `3.12.x` series.
370476

371477
GitHub issue: [#8680](https://github.com/rabbitmq/rabbitmq-server/pull/8680)
372478

479+
* AMQP 1.0 connections are now throttled when the node hits a [resource alarm](https://rabbitmq.com/alarms.html).
480+
481+
GitHub issue: [#9953](https://github.com/rabbitmq/rabbitmq-server/pull/9953)
482+
483+
484+
### OAuth 2 AuthN and AuthZ Backend Plugin
485+
486+
#### Enhancements
487+
488+
* RabbitMQ nodes now allow for multiple OAuth 2 resources to be configured. Each resource can use
489+
a different identity provider (for example, one can be powered by Keycloak and another by Azure Active Directory).
490+
491+
This allows for identity provider infrastructure changes (say, provider A is replaced with provider B over time)
492+
that do not affect RabbitMQ's ability to authenticate clients and authorize the operations they attempt to perform.
493+
494+
GitHub issue: [#10012](https://github.com/rabbitmq/rabbitmq-server/pull/10012)
495+
496+
* The plugin now performs discovery of certain properties for OpenID-compliant identity providers.
497+
498+
GitHub issue: [#10012](https://github.com/rabbitmq/rabbitmq-server/pull/10012)
499+
500+
501+
### Peer Discovery AWS Plugin
502+
503+
#### Enhancements
504+
505+
* It is now possible to override how node's hostname is extracted from AWS API responses during peer discovery.
506+
507+
This is done using `cluster_formation.aws.hostname_path`, a collection of keys that will be used to
508+
traverse the response and extract nested values from it. The list is comma-separated.
509+
510+
The default value is a single value list, `privateDnsName`.
511+
512+
Contributed by @illotum (AWS).
513+
514+
GitHub issue: [#10097](https://github.com/rabbitmq/rabbitmq-server/pull/10097)
515+
373516

374517
### Dependency Changes
375518

376-
* `ra` was upgraded to [`2.7.1`](https://github.com/rabbitmq/ra/releases)
519+
* `ra` was upgraded to [`2.9.1`](https://github.com/rabbitmq/ra/releases)
377520
* `osiris` was updated to [`1.7.2`](https://github.com/rabbitmq/osiris/releases)
378521
* `cowboy` was updated to [`2.11.0`](https://ninenines.eu/docs/en/cowboy/2.11/guide/migrating_from_2.10/)
379522

0 commit comments

Comments
 (0)