@@ -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
4242a 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