Skip to content

Commit bd7ab98

Browse files
Merge pull request #5860 from rabbitmq/mergify/bp/v3.9.x/pr-5859
3.9.23 release notes (backport #5855) (backport #5856) (backport #5859)
2 parents fe6824c + 0fdf4ff commit bd7ab98

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

release-notes/3.9.23.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
RabbitMQ `3.9.23` is a maintenance release in the `3.9.x` release series.
2+
3+
Please refer to the **Upgrading to 3.9** section from [v3.9.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.0) if upgrading from a version prior to 3.9.0.
4+
5+
This release requires at least Erlang 24.2, and supports Erlang 25. [RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on Erlang version requirements for RabbitMQ.
6+
7+
8+
### Minimum Supported Erlang Version
9+
10+
Erlang 23 support has reached its [end of support](https://www.rabbitmq.com/which-erlang.html).
11+
12+
Starting with this release, RabbitMQ requires Erlang 24.2 or later versions. Nodes **will fail to start** on older Erlang releases.
13+
14+
Erlang 25 as our new baseline means much improved performance on ARM64 architectures, [profiling with flame graphs](https://blog.rabbitmq.com/posts/2022/05/flame-graphs/)
15+
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.
16+
17+
### Open File Handle Limit is Capped by Default on Linux, *BSD, macOS
18+
19+
Nodes now default to 65536 concurrent client connections instead of using the effective kernel open file handle limit.
20+
Users who want to override this default, that is, have nodes that should support more concurrent connections and open files,
21+
now have to perform an additional configuration step:
22+
23+
* Pick a new limit value they would like to use, for instance, 100K
24+
* Set the maximum open file handle limit (for example, via `systemd` or similar tooling) for the OS user used by RabbitMQ to 100K
25+
* Set the [`ERL_MAX_PORTS` environment variable](https://www.rabbitmq.com/configure.html#customise-environment) to 100K
26+
27+
This change was introduced because of a change in several Linux distributions: they now use a default open file handle limit so high,
28+
they cause a significant (say, 1.5 GiB) memory preallocated the Erlang runtime.
29+
30+
For example, [RHEL 9 and CentOS Stream 9](https://access.redhat.com/solutions/1479623) are examples of such distributions.
31+
The new default [comes from modern systemd](https://github.com/systemd/systemd/commit/a8b627aaed409a15260c25988970c795bf963812).
32+
33+
See [rabbitmq/rabbitmq-server#5684](https://github.com/rabbitmq/rabbitmq-server/pull/5684) and [docker-library/rabbitmq#545](https://github.com/docker-library/rabbitmq/issues/545#issuecomment-1224977154)
34+
for details.
35+
36+
37+
## Changes Worth Mentioning
38+
39+
Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v3.10.x/release-notes).
40+
41+
42+
### Core Server
43+
44+
#### Enhancements
45+
46+
* Force GC after definition import to reduce peak memory load by mostly idle
47+
nodes that import a lot of definitions.
48+
49+
GitHub issue: [#5550](https://github.com/rabbitmq/rabbitmq-server/pull/5550)
50+
51+
#### Bug Fixes
52+
53+
* Reduced log noise from exceptions connections could run into when a client
54+
was closings it connection end concurrently with other activity.
55+
56+
GitHub issue: [#5539](https://github.com/rabbitmq/rabbitmq-server/pull/5539)
57+
58+
* `rabbitmq-env-conf.bat§ on Windows could fail to load when its path contained spaces.
59+
60+
GitHub issue: [#5542](https://github.com/rabbitmq/rabbitmq-server/pull/5542)
61+
62+
63+
### Stream Plugin
64+
65+
#### Bug Fixes
66+
67+
* Stream declaration could run into an exception when stream parameters failed validation.
68+
69+
GitHub issue: [#5487](https://github.com/rabbitmq/rabbitmq-server/pull/5487)
70+
71+
72+
### Grafana Dashboards
73+
74+
#### Bug Fixes
75+
76+
* Some counters on the Overview page have been moved to global counters introduced in RabbitMQ 3.9.
77+
78+
GitHub issue: [#5463](https://github.com/rabbitmq/rabbitmq-server/pull/5463)
79+
80+
81+
### MQTT Plugin
82+
83+
#### Enhancements
84+
85+
* A way to configure an authentication timeout, much like in some other protocols RabbitMQ supports.
86+
87+
Contributed by @gomoripeti.
88+
89+
GitHub issue: [#5755](https://github.com/rabbitmq/rabbitmq-server/pull/5755)
90+
91+
#### Bug Fixes
92+
93+
* Avoid an exception when MQTT client closes TCP connection before server could fully
94+
process a `CONNECT` frame sent earlier by the same client.
95+
96+
GitHub issue: [#5658](https://github.com/rabbitmq/rabbitmq-server/pull/5658)
97+
98+
99+
### STOMP Plugin
100+
101+
#### Enhancements
102+
103+
* A way to configure an authentication timeout, much like in some other protocols RabbitMQ supports.
104+
105+
Contributed by @gomoripeti.
106+
107+
GitHub issue: [#5755](https://github.com/rabbitmq/rabbitmq-server/pull/5755)
108+
109+
### Windows installer
110+
111+
#### Enhancements
112+
113+
* Service startup is now optional. More environment variables are respected by the installer.
114+
115+
Contributed by @inikulshin.
116+
117+
GitHub issues: [rabbitmq/rabbitmq-packaging#15](https://github.com/rabbitmq/rabbitmq-packaging/issues/15)
118+
119+
120+
## Dependency Upgrades
121+
122+
* `prometheus` upgraded to [`4.9.1`](https://github.com/deadtrickster/prometheus.erl/tags)
123+
* `eetcd` upgraded to [`0.3.6`](https://github.com/zhongwencool/eetcd/releases/)
124+
125+
126+
## Source Code Archives
127+
128+
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.9.23.tar.xz`
129+
instead of the source tarball produced by GitHub.

0 commit comments

Comments
 (0)