@@ -40,7 +40,7 @@ key in `rabbitmq.conf` and do not set it in the application code.
40
40
41
41
[ ` amqplib ` ] ( https://github.com/amqp-node/amqplib/ ) is a popular client library that has been using
42
42
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 ` .
44
44
45
45
46
46
### MQTT
@@ -117,6 +117,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
117
117
118
118
#### Enhancements
119
119
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
+
120
128
* Feature flag quality of live improvements.
121
129
122
130
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
136
144
137
145
GitHub issue: [ #12415 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/12415 )
138
146
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
+
139
163
* AMQP 1.0 connections that use OAuth 2.0 now can renew their JWT tokens
140
164
This allows clients to set a new token proactively before the current one [ expires] ( /docs/oauth2#token-expiration ) , ensuring uninterrupted connectivity.
141
165
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
162
186
163
187
GitHub issue: [ #13231 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/13231 )
164
188
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
+
165
207
* Nodes will now fall back to system CA certificate list (if available) when no CA certificate
166
208
is explicitly configured.
167
209
@@ -171,8 +213,6 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
171
213
172
214
* AMQP 1.0 and AMQP 0-9-1 connections now dynamically adjust their TCP socket buffers.
173
215
174
-
175
-
176
216
GitHub issue: [ #13363 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/13363 )
177
217
178
218
* Peer discovery resilience improvements.
@@ -203,6 +243,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
203
243
204
244
#### Bug Fixes
205
245
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
+
206
254
* AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names)
207
255
that contained non-ASCII characters.
208
256
@@ -356,7 +404,7 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
356
404
GitHub issue: [ #12720 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/12720 )
357
405
358
406
359
- ### Management UI
407
+ ### Management Plugin
360
408
361
409
#### Breaking Changes and Deprecations
362
410
@@ -415,6 +463,30 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
415
463
416
464
GitHub issues: [ #13545 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/13545 ) , [ #3478 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/3478 )
417
465
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
+
418
490
* Web app tab title now changes depending on the selected top-level tab.
419
491
420
492
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
438
510
GitHub issue: [ #12818 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/12818 )
439
511
440
512
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
+
441
536
### OAuth 2 AuthN and AuthZ Plugin
442
537
443
538
#### Breaking Changes and Deprecations
@@ -483,6 +578,15 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
483
578
GitHub issue: [ #12598 ] ( https://github.com/rabbitmq/rabbitmq-server/issues/12598 )
484
579
485
580
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
+
486
590
### Federation Plugin
487
591
488
592
#### Enhancements
@@ -491,9 +595,21 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
491
595
492
596
GitHub issue: [ #13115 ] ( https://github.com/rabbitmq/rabbitmq-server/pull/13115 )
493
597
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
+
494
604
495
605
### Shovel Plugin
496
606
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
+
497
613
#### Bug Fixes
498
614
499
615
* 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
600
716
601
717
### Dependency Changes
602
718
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 )
604
720
* ` osiris ` was upgraded to [ ` 1.8.6 ` ] ( https://github.com/rabbitmq/osiris/releases )
605
721
* ` observer_cli ` was upgraded to [ ` 1.8.2 ` ] ( https://github.com/zhongwencool/observer_cli/releases )
606
722
* ` eetcd ` was upgraded to [ ` 0.5.0 ` ] ( https://github.com/zhongwencool/eetcd/releases )
607
723
* ` 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 )
608
725
609
726
## Source Code Archives
610
727
0 commit comments