summaryrefslogtreecommitdiff
path: root/release-notes/3.11.4.md
blob: 09825b3e812922c26427953087fea074624c9597 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
RabbitMQ `3.11.4` is a maintenance release in the `3.11.x` [release series](https://www.rabbitmq.com/versions.html).

Please refer to the upgrade section from [v3.11.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.11.0)
if upgrading from a version prior to 3.11.0.

This release requires Erlang 25.
[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on
Erlang version requirements for RabbitMQ.


### Minimum Supported Erlang Version

As of 3.11.0, RabbitMQ requires Erlang 25. Nodes **will fail to start** on older Erlang releases.

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/)
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.


## Changes Worth Mentioning

Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v3.11.x/release-notes).


### Core Server

#### Enhancements

 * Import of definition files with many streams is now more efficient.

   GitHub issue: [#6436](https://github.com/rabbitmq/rabbitmq-server/pull/6436)

 * Lower CPU throughput in clusters with many mostly idle streams.

   GitHub issue: [#6436](https://github.com/rabbitmq/rabbitmq-server/pull/6436)

 * Streams with `max_age` retention now attempt to reclaim disk space every hour.
   This is relevant in environments with a lot of mostly inactive streams that
   set `max_age`.

   GitHub issue: [#6436](https://github.com/rabbitmq/rabbitmq-server/pull/6436)

 * Quorum queues are now more resilient to WAL log growth with workloads that
   involve clients that register a consumer and then close the channel
   or connection without ever consuming any deliveries or cancelling
   the consumer.

   GitHub issue: [#6447](https://github.com/rabbitmq/rabbitmq-server/issues/6447)

 * Dead-lettering of a large number of messages to a classic mirrored queues now has lower peak memory footprint.

   GitHub issue: [#5312](https://github.com/rabbitmq/rabbitmq-server/issues/5312)

#### Bug Fixes

 * When a node encouters an invalid `definitions.local.file` on boot,
   it will refuse to start instead of ignoring the file.

   GitHub issue: [#2610](https://github.com/rabbitmq/rabbitmq-server/issues/2610)

 * Fixed a type analyzer definition.

   Contributed by @illotum (AWS).

   GitHub issue: [#6401](https://github.com/rabbitmq/rabbitmq-server/pull/6401)


### CLI Tools

#### Enhancements

 * `rabbitmq-diagnostics check_if_node_is_quorum_critical` and
   `rabbitmq-upgrade await_online_quorum_plus_one` now consider
   stream (not just quorum queues) replica placement when determining
   if target node is quorum-critical.

   GitHub issue: [#6448](https://github.com/rabbitmq/rabbitmq-server/pull/6448)

 * Queue info keys now support more inclusive property names related
   to (deprecated) classic mirrored queues. For example, `mirror_pids`
   can now be used instead of `slave_pids`.

   Contributed by @illotum (AWS).

   GitHub issue: [#2635](https://github.com/rabbitmq/rabbitmq-server/issues/2635)

 * `rabbitmq-diagnostics memory_breakdown` now executes significantly faster
   in environments with a large number (say, tens or hundreds of thousands) of
   quorum queues. Two orders of magnitude faster, in fact.

   GitHub issue: [#6388](https://github.com/rabbitmq/rabbitmq-server/issues/6388)

#### Bug Fixes

 * Definition export in JSON failed on nodes that used `definitions.skip_if_unchanged`.

   GitHub issue: [#6424](https://github.com/rabbitmq/rabbitmq-server/issues/6424)

 * Using quorum queue-specific commands on streams now results in clearer error messages.

   Contributed by @gomoripeti (CloudAMQP).

   GitHub issue: [#6488](https://github.com/rabbitmq/rabbitmq-server/pull/6488)


### LDAP Plugin

#### Bug Fixes

 * LDAP server password could end up in the logs in certain types of exceptions.

   Contributed by @SimonUnge (AWS).

   GitHub issue: [#4842](https://github.com/rabbitmq/rabbitmq-server/issues/4842)


### STOMP Plugin

#### Enhancements

  * `x-max-age` [stream setting](https://rabbitmq.com/streams.html) now can be set
    by STOMP clients via a header.

    GitHub issue: [#5003](https://github.com/rabbitmq/rabbitmq-server/issues/5003)


## Dependency Upgrades

 * `osiris` was upgraded [from `1.3.3` to `1.4.0`](https://github.com/rabbitmq/osiris/tags)


## Source Code Archives

To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.11.4.tar.xz`
instead of the source tarball produced by GitHub.