Skip to content

Commit 5b99c6b

Browse files
4.1.0-rc.1 release notes
1 parent 213822e commit 5b99c6b

File tree

1 file changed

+122
-5
lines changed

1 file changed

+122
-5
lines changed

release-notes/4.1.0.md

Lines changed: 122 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ key in `rabbitmq.conf` and do not set it in the application code.
4040

4141
[`amqplib`](https://github.com/amqp-node/amqplib/) is a popular client library that has been using
4242
a low `frame_max` default of `4096`. Its users must [upgrade to a compatible version](https://github.com/amqp-node/amqplib/pull/787)
43-
or explicitly use a higher `frame_max`.
43+
(starting with `0.10.7`) or explicitly use a higher `frame_max`.
4444

4545

4646
### MQTT
@@ -117,6 +117,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
117117

118118
#### Enhancements
119119

120+
* Quorum queue log reads are now offloaded to channels (sessions, connections).
121+
122+
In practical terms this means improved consumer throughput, lower interference of publishers
123+
on queue delivery rate to consumers, and improved CPU core utilization by each quorum queue
124+
(assuming there are enough cores available to the node).
125+
126+
GitHub issue: [#12713](https://github.com/rabbitmq/rabbitmq-server/pull/12713)
127+
120128
* Feature flag quality of live improvements.
121129

122130
Certain required feature flags will now be automatically required on node boot
@@ -136,6 +144,22 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
136144

137145
GitHub issue: [#12415](https://github.com/rabbitmq/rabbitmq-server/pull/12415)
138146

147+
* Larger (up to 8192 bytes) [JWT tokens](https://www.rabbitmq.com/docs/oauth2) now can be used by AMQP 0-9-1 clients.
148+
149+
Before a client connection can negotiate a maximum frame size (`frame_max`), it must authenticate
150+
successfully. Before the authenticated phase, a special lower `frame_max` value
151+
is used.
152+
153+
Clients that do override `frame_max` now must use values of 8192 bytes or greater.
154+
We recommend using the default server value of `131072`: do not override the `frame_max`
155+
key in `rabbitmq.conf` and do not set it in the application code.
156+
157+
[`amqplib`](https://github.com/amqp-node/amqplib/) is a popular client library that has been using
158+
a low `frame_max` default of `4096`. Its users must [upgrade to a compatible version](https://github.com/amqp-node/amqplib/pull/787)
159+
(starting with `0.10.7`) or explicitly use a higher `frame_max`.
160+
161+
GitHub issue: [#13541](https://github.com/rabbitmq/rabbitmq-server/issues/13541)
162+
139163
* AMQP 1.0 connections that use OAuth 2.0 now can renew their JWT tokens
140164
This allows clients to set a new token proactively before the current one [expires](/docs/oauth2#token-expiration), ensuring uninterrupted connectivity.
141165
If a client does not set a new token before the existing one expires, RabbitMQ will automatically close the AMQP 1.0 connection.
@@ -162,6 +186,24 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
162186

163187
GitHub issue: [#13231](https://github.com/rabbitmq/rabbitmq-server/pull/13231)
164188

189+
* Quorum queue checkpoint algorithm was tweaked to take checkpoints more frequently, thus
190+
clearing older segment files more aggressively.
191+
192+
Workloads that use larger messages should continue following [the documented recommendations](https://www.rabbitmq.com/docs/quorum-queues#performance-tuning-large-messages) to
193+
avoid large disk space footprint of segment files.
194+
195+
GitHub issue: [#13622](https://github.com/rabbitmq/rabbitmq-server/pull/13622)
196+
197+
* Previously a node that was a cluster member but then was [reset](https://www.rabbitmq.com/docs/clustering#restarting-with-hostname-changes) could not
198+
rejoin the cluster if the [schema data store](https://www.rabbitmq.com/docs/metadata-store) was Mnesia.
199+
200+
Now the reset node will try to leave the cluster and retry rejoining again.
201+
This was already the case for Khepri.
202+
203+
Contributed by @SimonUnge.
204+
205+
GitHub issue: [#13643](https://github.com/rabbitmq/rabbitmq-server/pull/13643)
206+
165207
* Nodes will now fall back to system CA certificate list (if available) when no CA certificate
166208
is explicitly configured.
167209

@@ -171,8 +213,6 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
171213

172214
* AMQP 1.0 and AMQP 0-9-1 connections now dynamically adjust their TCP socket buffers.
173215

174-
175-
176216
GitHub issue: [#13363](https://github.com/rabbitmq/rabbitmq-server/pull/13363)
177217

178218
* Peer discovery resilience improvements.
@@ -203,6 +243,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
203243

204244
#### Bug Fixes
205245

246+
* Quorum queue leadership transfer could take several seconds longer than necessary to complete.
247+
248+
GitHub issue: [#13190](https://github.com/rabbitmq/rabbitmq-server/pull/13190)
249+
250+
* Quorum queue follow replica's last index could lag behind that of the leader.
251+
252+
GitHub issue: [#13328](https://github.com/rabbitmq/rabbitmq-server/pull/13328)
253+
206254
* AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names)
207255
that contained non-ASCII characters.
208256

@@ -356,7 +404,7 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
356404
GitHub issue: [#12720](https://github.com/rabbitmq/rabbitmq-server/pull/12720)
357405

358406

359-
### Management UI
407+
### Management Plugin
360408

361409
#### Breaking Changes and Deprecations
362410

@@ -415,6 +463,30 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
415463

416464
GitHub issues: [#13545](https://github.com/rabbitmq/rabbitmq-server/pull/13545), [#3478](https://github.com/rabbitmq/rabbitmq-server/issues/3478)
417465

466+
* New health check commands help detect quorum queues without an elected leader.
467+
468+
```
469+
# verifies all quorum queues across all virtual hosts
470+
GET /health/checks/quorum-queues-without-elected-leaders/all-vhosts/
471+
```
472+
473+
```
474+
# verifies all quorum queues in the given virtual host
475+
GET /health/checks/quorum-queues-without-elected-leaders/vhost/{vhost}
476+
```
477+
478+
```
479+
# verifies a subset of quorum queue that match the pattern across all virtual hosts
480+
GET /health/checks/quorum-queues-without-elected-leaders/all-vhosts/pattern/{pattern}
481+
```
482+
483+
```
484+
# verifies a subset of quorum queue that match the pattern in the given virtual host
485+
GET /health/checks/quorum-queues-without-elected-leaders/vhost/{vhost}/pattern/{pattern}
486+
```
487+
488+
Note that the values in the path must be percent-encoded, including the pattern.
489+
418490
* Web app tab title now changes depending on the selected top-level tab.
419491

420492
GitHub issue: [#13512](https://github.com/rabbitmq/rabbitmq-server/pull/13512)
@@ -438,6 +510,29 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
438510
GitHub issue: [#12818](https://github.com/rabbitmq/rabbitmq-server/pull/12818)
439511

440512

513+
### Stream Plugin
514+
515+
#### Enhancements
516+
517+
* Stream replication connections now can be configured to use IPv6 using `advanced.config`:
518+
519+
```erl
520+
[
521+
{osiris, [
522+
{replica_ip_address_family, inet6}
523+
]}
524+
].
525+
```
526+
527+
#### Bug Fixes
528+
529+
* When a connection of one or more consumers in a [Single Active Consumer](https://www.rabbitmq.com/docs/streams#single-active-consumer) group failed,
530+
the group could try to activate (promote) one of the consumers are are no longer online. In practical terms
531+
this means that other consumers were not getting any deliveries.
532+
533+
GitHub issue: [#13657](https://github.com/rabbitmq/rabbitmq-server/pull/13657)
534+
535+
441536
### OAuth 2 AuthN and AuthZ Plugin
442537

443538
#### Breaking Changes and Deprecations
@@ -483,6 +578,15 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
483578
GitHub issue: [#12598](https://github.com/rabbitmq/rabbitmq-server/issues/12598)
484579

485580

581+
### LDAP Plugin
582+
583+
#### Enhancements
584+
585+
* The `in_group_nested` query now uses case-insensitive matching, which is more typical of the LDAP tooling.
586+
587+
GitHub issue: [#13629](https://github.com/rabbitmq/rabbitmq-server/pull/13629)
588+
589+
486590
### Federation Plugin
487591

488592
#### Enhancements
@@ -491,9 +595,21 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
491595

492596
GitHub issue: [#13115](https://github.com/rabbitmq/rabbitmq-server/pull/13115)
493597

598+
#### Bug Fixes
599+
600+
* Queue federation could cause a deadlock in a quorum queue replica process.
601+
602+
GitHub issue: [#12713](https://github.com/rabbitmq/rabbitmq-server/pull/12713)
603+
494604

495605
### Shovel Plugin
496606

607+
#### Enhancements
608+
609+
* New Shovel metric: the number of forwarded messages.
610+
611+
GitHub issue: [#13626](https://github.com/rabbitmq/rabbitmq-server/pull/13626)
612+
497613
#### Bug Fixes
498614

499615
* AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names)
@@ -600,11 +716,12 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
600716

601717
### Dependency Changes
602718

603-
* `ra` was upgraded to [`2.16.3`](https://github.com/rabbitmq/ra/releases)
719+
* `ra` was upgraded to [`2.16.6`](https://github.com/rabbitmq/ra/releases)
604720
* `osiris` was upgraded to [`1.8.6`](https://github.com/rabbitmq/osiris/releases)
605721
* `observer_cli` was upgraded to [`1.8.2`](https://github.com/zhongwencool/observer_cli/releases)
606722
* `eetcd` was upgraded to [`0.5.0`](https://github.com/zhongwencool/eetcd/releases)
607723
* `gun` was upgraded to [`2.1.0`](https://github.com/ninenines/gun/releases)
724+
* `credentials_obfuscation` was upgraded to [`3.5.0`](https://github.com/rabbitmq/credentials-obfuscation/releases)
608725

609726
## Source Code Archives
610727

0 commit comments

Comments
 (0)