Skip to content

Commit 213822e

Browse files
4.0.8 release notes
[skip ci]
1 parent e83c286 commit 213822e

File tree

1 file changed

+179
-0
lines changed

1 file changed

+179
-0
lines changed

release-notes/4.0.8.md

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
## RabbitMQ 4.0.8
2+
3+
RabbitMQ `4.0.8` is a maintenance release in the `4.0.x` [release series](https://www.rabbitmq.com/release-information).
4+
5+
Starting June 1st, 2024, community support for this series will only be provided to [regularly contributing users](https://github.com/rabbitmq/rabbitmq-server/blob/main/COMMUNITY_SUPPORT.md) and those
6+
who hold a valid [commercial support license](https://tanzu.vmware.com/rabbitmq/oss).
7+
8+
It is **strongly recommended** that you read [4.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.1)
9+
in detail if upgrading from a version prior to `4.0.0`.
10+
11+
12+
### Minimum Supported Erlang Version
13+
14+
This release requires Erlang 26 and supports Erlang versions up to `27.3.x`.
15+
[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/docs/which-erlang) has more details on
16+
Erlang version requirements for RabbitMQ.
17+
18+
Nodes **will fail to start** on older Erlang releases.
19+
20+
21+
## Changes Worth Mentioning
22+
23+
Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v4.0.x/release-notes).
24+
25+
### Core Broker
26+
27+
#### Bug Fixes
28+
29+
* Fixes a number of rare replication safety issues for quorum queues and Khepri.
30+
31+
GitHub issue: [#13530](https://github.com/rabbitmq/rabbitmq-server/pull/13530)
32+
33+
#### Enhancements
34+
35+
* Quorum queue checkpoint algorithm was tweaked to take checkpoints more frequently, thus
36+
clearing older segment files more aggressively.
37+
38+
Workloads that use larger messages should continue following [the documented recommendations](https://www.rabbitmq.com/docs/quorum-queues#performance-tuning-large-messages) to
39+
avoid large disk space footprint of segment files.
40+
41+
GitHub issue: [#13622](https://github.com/rabbitmq/rabbitmq-server/pull/13622)
42+
43+
* Previously a node that was a cluster member but then was [reset](https://www.rabbitmq.com/docs/clustering#restarting-with-hostname-changes) could not
44+
rejoin the cluster if the [schema data store](https://www.rabbitmq.com/docs/metadata-store) was Mnesia.
45+
46+
Now the reset node will try to leave the cluster and retry rejoining again.
47+
This was already the case for Khepri.
48+
49+
Contributed by @SimonUnge.
50+
51+
GitHub issue: #13669](https://github.com/rabbitmq/rabbitmq-server/pull/13669)
52+
53+
54+
### CLI Tools
55+
56+
#### Enhancements
57+
58+
* [`rabbitmqadmin`](https://www.rabbitmq.com/docs/management-cli) 2.0.0 GA is now available as a standalone binary.
59+
60+
Learn more: [`rabbitmq/rabbitmqadmin-ng`](https://github.com/rabbitmq/rabbitmqadmin-ng)
61+
62+
* New health check commands help detect quorum queues without an elected leader.
63+
64+
```shell
65+
# Verifies that all quorum queues in virtual host "vh-1" match the naming pattern "^naming-pattern"
66+
# have an elected leader
67+
rabbitmq-diagnostics check_for_quorum_queues_without_an_elected_leader --vhost "vh-1" "^naming-pattern"
68+
69+
# Verifies that all quorum queues in the cluster have an elected leader. This can be an expensive
70+
# operation if there are many quorum queues in the cluster, consider providing a more specific pattern
71+
rabbitmq-diagnostics check_for_quorum_queues_without_an_elected_leader --across-all-vhosts ".*"
72+
```
73+
74+
Contributed by @Ayanda-D.
75+
76+
GitHub issue: [#13489](https://github.com/rabbitmq/rabbitmq-server/pull/13489/)
77+
78+
79+
### Stream Plugin
80+
81+
#### Bug Fixes
82+
83+
* When a connection of one or more consumers in a [Single Active Consumer]() group failed, the group
84+
could try to activate (promote) one of the consumers are are no longer online. In practical terms
85+
this means that other consumers were not getting any deliveries.
86+
87+
GitHub issue: [#13660](https://github.com/rabbitmq/rabbitmq-server/pull/13660)
88+
89+
#### Enhancements
90+
91+
* Stream replication connections now can be configured to use IPv6 using `advanced.config`:
92+
93+
```erl
94+
[
95+
{osiris, [
96+
{replica_ip_address_family, inet6}
97+
]}
98+
].
99+
```
100+
101+
102+
### Management Plugin
103+
104+
#### Bug Fixes
105+
106+
* If HTTP API was configured to use a custom prefix, OAuth 2-based authentication would fail
107+
because one of the cookies used by the workflow was using an absolute path.
108+
109+
GitHub issue: [#13668](https://github.com/rabbitmq/rabbitmq-server/pull/13668)
110+
111+
* Several endpoints could produce an exception when the requested resource (queue or exchange) did not exist.
112+
113+
GitHub issue: [#13619](https://github.com/rabbitmq/rabbitmq-server/pull/13619)
114+
115+
* When [OAuth 2 was enabled](https://www.rabbitmq.com/docs/oauth2) with an IDP-initiated login,
116+
the UI displayed a confusing warning.
117+
118+
GitHub issue: [#13507](https://github.com/rabbitmq/rabbitmq-server/pull/13507)
119+
120+
#### Enhancements
121+
122+
* Historically, HTTP API access was controlled by exactly the same [authentication and authorization backend chain]()
123+
that were configured for the messaging protocol connections.
124+
125+
Now it is possible to use a separate chain, that is, a separate set of backends, specifically for the HTTP API access:
126+
127+
```ini
128+
# Messaging protocol access
129+
auth_backends.1 = ldap
130+
auth_backends.2 = internal
131+
132+
# HTTP API access
133+
http_dispatch.auth_backends.1 = http
134+
```
135+
136+
Contributed by @aaron-seo.
137+
138+
GitHub issue: [#13467](https://github.com/rabbitmq/rabbitmq-server/pull/13467)
139+
140+
* A new `rabbitmq.conf` setting, `management.delegate_count`, controls the size of the pool of processes
141+
that aggregate data to respond to HTTP API client requests.
142+
143+
The default value is `5`. Nodes that have access to a double digit numbers of CPU cores (say, 32)
144+
could benefit from using a higher number, e.g. `10` or `16`.
145+
146+
Contributed by @Ayanda-D.
147+
148+
GitHub issue: [#13462](https://github.com/rabbitmq/rabbitmq-server/pull/13462)
149+
150+
151+
### Shovel Plugin
152+
153+
#### Bug Fixes
154+
155+
* AMQP 1.0 shovels could stop consuming after `2^16 - 1` messages.
156+
157+
GitHub issue: [#13578](https://github.com/rabbitmq/rabbitmq-server/pull/13578)
158+
159+
160+
### LDAP Plugin
161+
162+
#### Enhancements
163+
164+
* The `in_group_nested` query now uses case-insensitive matching, which is more typical of the LDAP tooling.
165+
166+
GitHub issue: [#13633](https://github.com/rabbitmq/rabbitmq-server/pull/13633)
167+
168+
169+
### Dependency Changes
170+
171+
* `ra` was upgraded to [`2.15.3`](https://github.com/rabbitmq/ra/releases)
172+
* `osiris` was updated to [`1.8.6`](https://github.com/rabbitmq/osiris/releases)
173+
* `credentials_obfuscation` was upgraded to [`3.5.0`](https://github.com/rabbitmq/credentials-obfuscation/releases)
174+
175+
176+
## Source Code Archives
177+
178+
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-4.0.8.tar.xz`
179+
instead of the source tarball produced by GitHub.

0 commit comments

Comments
 (0)