summaryrefslogtreecommitdiff
path: root/release-notes/3.7.11.md
blob: c93941c33748ca677f932c378382f48ebaaea861 (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
135
136
137
138
139
## RabbitMQ 3.7.11

RabbitMQ `3.7.11` is a maintenance release. It focuses on bug fixes and
minor usability improvements. This is the first release to **require Erlang/OTP 20.3+**.

### Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release [**drops support for Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ). Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.

[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 `20.3.x` and `21.x`.

### Compatibility Notes

 * This release requires Erlang/OTP 20.3 or later.
 * Default CLI command exit code has changed from 70 (`EX_UNAVAILABLE`) to 69 (`EX_SOFTWARE`).
   This does not affect all commands and all error conditions, e.g. argument validation still uses code 64 (`EX_USAGE`)

#### Upgrading to Erlang 21.x

When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.

#### Documentation Guides and Change Log

See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
compatibility notes if upgrading from an earlier release.

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.


## Changes

### Core Server

#### Erlang Version Requirement

 * This release **requires Erlang/OTP `20.3.x`** or `21.x`.
 
   GitHub issue: [rabbitmq/rabbitmq-server#1820](https://github.com/rabbitmq/rabbitmq-server/issues/1820)

#### Bug Fixes

 * Number of socket file descriptors used is now correctly incremented.
 
   GitHub issue: [rabbitmq/rabbitmq-management#652](https://github.com/rabbitmq/rabbitmq-management/issues/652)

 * Configuration schema file was not copied during upgrades.
 
   GitHub issues: [rabbitmq/rabbitmq-server#1843](https://github.com/rabbitmq/rabbitmq-server/issues/1843)

 * First heartbeat frame on a successfully negotiated connection is now sent after a half of the negotiated heartbeat
   timeout. Previously it was sent after a complete timeout. Since most connections have other activity after
   connection handshake is complete, this didn't have any visible effects on most systems.
   
   GitHub issue: [rabbitmq/rabbitmq-common#293](https://github.com/rabbitmq/rabbitmq-common/pull/293)

 * If Syslog was configured to use TCP, the node could fail to start.
 
   GitHub issue: [rabbitmq/rabbitmq-server#1850](https://github.com/rabbitmq/rabbitmq-server/issues/1850)

### CLI Tools

#### Enhancements

  * Several new `rabbitmq-diagnostics` commands useful for diagnostics and health checks.
  
    GitHub issues: [rabbitmq/rabbitmq-cli/issues/292](https://github.com/rabbitmq/rabbitmq-cli/issues/292), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303)

  * All CLI tools now can display command-specific help with `[command name] --help`, e.g. `rabbitmqctl set_policy --help`
  
    GitHub issue: [rabbitmq/rabbitmq-cli#306](https://github.com/rabbitmq/rabbitmq-cli/pull/306)


### Management Plugin

#### Enhancements

 * `rabbitmqadmin` now defines an exception not available in Python 2, making TCP connection
    error reporting more similar with that on Python 3.
    
    GitHub issue: [rabbitmq/rabbitmq-management#647](https://github.com/rabbitmq/rabbitmq-management/issues/647)


### AWS Peer Discovery Plugin

#### Bug Fixes

  * When an EC2 API endpoint could not be reached, the plugin terminated in a way that
    brought down the entire node with it.
  
    GitHib issue: [rabbitmq/rabbitmq-peer-discovery-aws#25](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/25)


### STOMP Plugin

#### Enhancements

 * Avoid using a private socket API function that's likely going away in Erlang 22.
 
   GitHub issue: [rabbitmq/rabbitmq-stomp#128](https://github.com/rabbitmq/rabbitmq-stomp/pull/128)

 * Default topic exchange used by the plugin is now configurable.
 
   GitHub issue: [rabbitmq/rabbitmq-stomp#94](https://github.com/rabbitmq/rabbitmq-stomp/issues/94)


### MQTT Plugin

#### Enhancements

 * Avoid using a private socket API function that's likely going away in Erlang 22.
 
   GitHub issue: [rabbitmq/rabbitmq-mqtt#171](https://github.com/rabbitmq/rabbitmq-mqtt/pull/171)


### AuthN/AuthZ Backend Cache Plugin

#### Bug Fixes

 * The new style config format did not support `auth_cache.cache_refusals`
 
   GitHub issue: [rabbitmq/rabbitmq-auth-backend-cache#17](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/17)

### Erlang Client

#### Enhancements

 * Avoid using a private socket API function that's likely going away in Erlang 22.
 
   GitHub issue: [rabbitmq/rabbitmq-erlang-client#114](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/114)



## Source code archives

**Warning**: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.11.tar.gz`.