File: 3.8.13.md

package info (click to toggle)
rabbitmq-server 4.0.5-6
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 37,948 kB
  • sloc: erlang: 257,835; javascript: 22,466; sh: 2,796; makefile: 2,517; python: 1,966; xml: 646; cs: 335; java: 244; ruby: 212; php: 100; perl: 63; awk: 13
file content (155 lines) | stat: -rw-r--r-- 6,284 bytes parent folder | download | duplicates (2)
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
## RabbitMQ 3.8.13

RabbitMQ `3.8.13` is a maintenance release.

### Erlang/OTP Compatibility Notes

This release [requires Erlang 22.3](https://www.rabbitmq.com/which-erlang.html).
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
for best forward compatibility with future RabbitMQ versions.

[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.


## Upgrade and Compatibility Notes

### Upgrade Doc Guides and Change Log

See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).

See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.

### Upgrading to Erlang 22.x or Later Versions

When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.

Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
RabbitMQ **must be upgraded at the same time as Erlang**.

Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
then Erlang 22.3 or 23.x, then RabbitMQ to the most recent 3.8.x release.

### Getting Help

Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).


## Changes Worth Mentioning

### Core Server

#### Bug Fixes

 * Nodes that had an unusually long name (e.g. 150 or more characters) could overflow
   message property lengths with the [direct reply-to](https://www.rabbitmq.com/direct-reply-to.html) identifier they generated.
   Now the generated values are almost entirely decoupled from node name length.

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


### Management Plugin

#### Bug Fixes

 * Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
   what it measures. The metric indicates the percentage of time that RabbitMQ has attempted a delivery
   to a consumer of a queue, and was allowed to do so by the [channel prefetch value](https://www.rabbitmq.com/confirms.html#channel-qos-prefetch) and
   the number of currently unacknowledged deliveries.

   For queues that have no consumers, the metric now returns 0%. For consumers that accept all deliveries
   attempted, the metric will be around 100% (optimal).

   For queues that do have consumers but no traffic the metric will be at 100%. The assumption here is that consumers
   can absorb all the load. This case is intentionally treated differently from the one above with no online consumers.

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


### Prometheus Plugin

#### Bug Fixes

 * Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
   what it measures. See a more detailed note above in the Management plugin section.

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


### Federation Plugin

#### Enhancements

 * Quorum queues now can be federated.

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

 * Exchange federation now supports a new option, `channel_use_mode`, which allows a single
   channel to be used for all federation link activity if set to `single`:

   ``` shell
   rabbitmqctl set_parameter federation-upstream dc-2 '{"uri":"amqp://dc2.messaging.coolcorp.local:5672", "channel-use-mode": "single"}'
   ```

   This helps avoid a race condition between topology changes and message flow
   and the cost of topology operations reducing message transfer rates and increasing
   rate variability.

   The default value is `multiple`. It means that every link will use multiple channels (one for message transfer,
   one for topology changes, etc), which has been the case since rabbitmq/rabbitmq-federation#97.
   This is the recommended mode for most environments, and all environments with a mostly static topology.

   See [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97) for the background.

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


### AMQP 1.0 Plugin

#### Bug Fixes

 * The plugin could run into unhandled exceptions.

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


### OAuth 2 AuthN/AuthZ Backend

#### Enhancements

 * Several settings of the plugin are now exposed to `rabbitmq.conf` and provide validations:

   ``` ini
   auth_backends.1 = oauth2
   auth_oauth2.resource_server_id = a_resource_server_id
   auth_oauth2.additional_scopes_key = a_custom_scope_key
   auth_oauth2.default_key = id1
   auth_oauth2.signing_keys.id1 = /path/to/signing.key1.pem
   auth_oauth2.signing_keys.id2 = /path/to/signing.key2.pem
   ```

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

 * JWT tokens now can be fetched from a JWKS endpoint provided using the `rabbitmq_auth_backend_oauth2.key_config.jwks_url`
   key in `advanced.config`.

   Contributed by Teo @teozkr Klestrup Röijezon.

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


## Dependency Upgrades

 * `lager` was [upgraded to 3.8.2](https://github.com/erlang-lager/lager/compare/3.8.0..3.8.2)
 * `cuttlefish` was [upgraded to 2.6.0](https://github.com/kyorai/cuttlefish/compare/v2.4.0..v2.6.0)
 * `credentials_obfuscation` was [upgraded to 2.4.0](https://github.com/rabbitmq/credentials-obfuscation/blob/master/ChangeLog.md#changes-between-230-and-240-february-18-2021)
 * `observer_cli` was [upgraded to 1.6.0](https://github.com/zhongwencool/observer_cli/compare/1.5.4..v1.6.0)


## Source Code Archives

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