Skip to content

Commit f8344d6

Browse files
4.0.4 release notes
1 parent e7e11ae commit f8344d6

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed

release-notes/4.0.4.md

Lines changed: 212 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
## RabbitMQ 4.0.4
2+
3+
RabbitMQ `4.0.4` 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.1.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+
* In rare cases quorum queue could end up without an elected leader because
30+
chosen candidate replica was not verified for aliveness.
31+
32+
Contributed by @Ayanda-D.
33+
34+
GitHub issues: [#12727](https://github.com/rabbitmq/rabbitmq-server/pull/12727), [#10423](https://github.com/rabbitmq/rabbitmq-server/discussions/10423), [#12701](https://github.com/rabbitmq/rabbitmq-server/discussions/12701)
35+
36+
* Quorum queue follower replicas that have falled behind the leader could
37+
run into an exception after installing a snapshot.
38+
39+
GitHub issue: [#12635](https://github.com/rabbitmq/rabbitmq-server/issues/12635)
40+
41+
* Clusters with a large number of streams could run into confusing timeout
42+
exceptions.
43+
44+
GitHub issue: [#12693](https://github.com/rabbitmq/rabbitmq-server/pull/12693)
45+
46+
* Stream members could fail to start when their data directories had externally added files,
47+
for example, metadata of certain file systems.
48+
49+
GitHub issue: [#12688](https://github.com/rabbitmq/rabbitmq-server/issues/12688)
50+
51+
* Fetching metrics of AMQP 1.0 connections could fail with an exception.
52+
53+
GitHub issue: [#12700](https://github.com/rabbitmq/rabbitmq-server/pull/12700)
54+
55+
#### Enhancements
56+
57+
* Policy changes are now periodicaly re-applied (only if necessary) to quorum queues.
58+
Quorum queues that did not have an online elected leader at the time
59+
of policy change would now eventually "pick up" the settings from that policy.
60+
61+
Contributed by @LoisSotoLopez.
62+
63+
GitHub issue: [#12667](https://github.com/rabbitmq/rabbitmq-server/pull/12667)
64+
65+
* Clusters with many streams and stream consumers will see a reduced per-stream CPU and network I/O
66+
footprint.
67+
68+
GitHub issue: [#12685](https://github.com/rabbitmq/rabbitmq-server/pull/12685)
69+
70+
* Clusters now can optionally be tagged with key-value pairs (cluster tags). The tags will
71+
be reported by `rabbitmq-diagnostics cluster_status` and the `GET /api/overview` HTTP API endpoint.
72+
73+
Note that the Prometheus scraper API endpoint intentionally omits them because this kind of
74+
metadata in Prometheus is considered to be [deployment and not application metadata](https://github.com/rabbitmq/rabbitmq-server/issues/12552#issuecomment-2424985095).
75+
76+
The tags are configured using `rabbitmq.conf`:
77+
78+
```ini
79+
cluster_tags.environment = production
80+
81+
cluster_tags.region = us-east
82+
cluster_tags.az = us-east-3
83+
```
84+
85+
Contributed by @SimonUnge.
86+
87+
GitHub issue: [#12552](https://github.com/rabbitmq/rabbitmq-server/issues/12552)
88+
89+
* Nodes now can optionally be tagged with key-value pairs (node tags). The tags will
90+
be reported by `rabbitmq-diagnostics status` and the `GET /api/overview` HTTP API endpoint.
91+
92+
Note that the Prometheus scraper API endpoint intentionally omits them because this kind of
93+
metadata in Prometheus is considered to be [deployment and not application metadata](https://github.com/rabbitmq/rabbitmq-server/issues/12552#issuecomment-2424985095).
94+
95+
The tags are configured using `rabbitmq.conf`:
96+
97+
```ini
98+
cluster_tags.environment = production
99+
100+
cluster_tags.region = us-east
101+
cluster_tags.az = us-east-3
102+
```
103+
104+
Contributed by @SimonUnge.
105+
106+
GitHub issue: [#12703](https://github.com/rabbitmq/rabbitmq-server/pull/12703)
107+
108+
* When a [max length](https://www.rabbitmq.com/docs/maxlength) limit is applied to a quorum queue with a larger backlog (e.g. millions of messages),
109+
the deletion of excess messages now carries a significantly more moderate spike in memory footprint
110+
of the queue.
111+
112+
GitHub issue: [#12608](https://github.com/rabbitmq/rabbitmq-server/issues/12608)
113+
114+
115+
### CLI Tools
116+
117+
#### Bug Fixes
118+
119+
* `rabbitmq-diagnostics check_if_any_deprecated_features_are_used` now takes more deprecated features
120+
into account.
121+
122+
GitHub issue: [#12734](https://github.com/rabbitmq/rabbitmq-server/pull/12734), [#12738](https://github.com/rabbitmq/rabbitmq-server/pull/12738)
123+
124+
125+
### MQTT Plugin
126+
127+
#### Bug Fixes
128+
129+
* A message with expiration (TTL) set, that was published by an AMQP 0-9-1 publusher,
130+
could not be converted for an MQTT consumer.
131+
132+
GitHub issue: [#12711](https://github.com/rabbitmq/rabbitmq-server/pull/12711)
133+
134+
* When x.509 (TLS) certificate-based authentication was used, two keys that controlled
135+
what SAN (Subject Alternative Name) fields were used to fetch client identity did not
136+
have any effect when used in `rabbitmq.conf`.
137+
138+
Partially contributed by @janezturk.
139+
140+
GitHub issue: [#12618](https://github.com/rabbitmq/rabbitmq-server/pull/12618)
141+
142+
143+
### Prometheus Plugin and Grafana Dashboards
144+
145+
#### Bug Fixes
146+
147+
* Tweaks for Grafana 11.3 compatibility.
148+
149+
Contributed by @anhanhnguyen.
150+
151+
GitHub issue: [#12720](https://github.com/rabbitmq/rabbitmq-server/pull/12720)
152+
153+
154+
### Management Plugin
155+
156+
#### Enhancements
157+
158+
* The endpoint that creates bindings now uses a much smaller HTTP request body
159+
size limit by default. Unlike the definition upload endpoint that accepts
160+
large definition documents, bindings do not need the generous multi-MiB limit.
161+
162+
Note that the default HTTP request body size limit [can be configured](https://www.rabbitmq.com/docs/management#http-body-size-limit),
163+
for example, to reduce it across the board.
164+
165+
GitHub issue: [#12697](https://github.com/rabbitmq/rabbitmq-server/pull/12697)
166+
167+
* Improved alignment of optional queue arguments on the queue declaration page.
168+
169+
Contributed by @markus812498.
170+
171+
GitHub issue: [#12678](https://github.com/rabbitmq/rabbitmq-server/pull/12678)
172+
173+
174+
### OAuth 2 Plugin
175+
176+
#### Bug Fixes
177+
178+
* When configuring [multiple resource servers](https://www.rabbitmq.com/docs/oauth2#multiple-resource-servers-configuration),
179+
`additional_scopes_key` was not taken into account, which means some scopes were not considered
180+
when making an authorization decision.
181+
182+
Contributed by @Hathoute.
183+
184+
GitHub issue: [#12750](https://github.com/rabbitmq/rabbitmq-server/issues/12750)
185+
186+
187+
### Debian Package
188+
189+
#### Enhancements
190+
191+
* The package now list Erlang 27.x as supported versions.
192+
193+
GitHub issue: [#12603](https://github.com/rabbitmq/rabbitmq-server/issues/12603)
194+
195+
### RPM Package
196+
197+
#### Enhancements
198+
199+
* The package now list Erlang 27.x as supported versions.
200+
201+
GitHub issue: [#12603](https://github.com/rabbitmq/rabbitmq-server/issues/12603)
202+
203+
204+
### Dependency Changes
205+
206+
* `osiris` was upgraded to [`1.8.4`](https://github.com/rabbitmq/osiris)
207+
208+
209+
## Source Code Archives
210+
211+
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-4.0.4.tar.xz`
212+
instead of the source tarball produced by GitHub.

0 commit comments

Comments
 (0)