376 lines
15 KiB
Markdown
376 lines
15 KiB
Markdown
|
## RabbitMQ 3.6.2
|
||
|
|
||
|
RabbitMQ `3.6.2` is a maintenance release that includes a [new statistics
|
||
|
collector in the management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/41).
|
||
|
|
||
|
### Management Plugin Incompatibility with Earlier 3.6.x Releases
|
||
|
|
||
|
Because this version includes significant changes to the management plugin,
|
||
|
it should not be deployed into clusters with mixed `3.6.x` node versions
|
||
|
unless **all nodes that have the management plugin enabled** run `3.6.2`.
|
||
|
Otherwise HTTP API requests will fail with exceptions in some scenarios and parts of
|
||
|
management UI may not be updated.
|
||
|
|
||
|
There are no other known incompatibilities with earlier `3.6.x` releases.
|
||
|
|
||
|
|
||
|
### OpenSSL Requirement for Standalone Mac Release
|
||
|
|
||
|
Standalone Mac OS X package now requires OpenSSL 1.0.x to be provided by the system, for example,
|
||
|
from Homebrew.
|
||
|
|
||
|
### Optional `socat` Package Dependency for Distributions that Use `systemd`
|
||
|
|
||
|
Starting with `3.6.2`, RabbitMQ Debian and RPM packages have an optional
|
||
|
[dependency on socat](https://groups.google.com/forum/#!searchin/rabbitmq-users/socat/rabbitmq-users/ktzOsgNEBkY/cOlF_eP6AAAJ). When
|
||
|
installing using `dpkg`, this dependency won't be automatically installed. To install it manually, use
|
||
|
|
||
|
sudo apt-get install socat
|
||
|
|
||
|
|
||
|
### Server
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Channel operations that time out no longer produce noisy crash reports in
|
||
|
RabbitMQ log files
|
||
|
|
||
|
GitHub issue: [rabbitmq-common#63](https://github.com/rabbitmq/rabbitmq-common/issues/63)
|
||
|
|
||
|
* Channel operation timeout default is bumped to 15 seconds
|
||
|
|
||
|
GitHub issue: [rabbitmq-server/issues/667](https://github.com/rabbitmq/rabbitmq-server/issues/667)
|
||
|
|
||
|
* Windows service will pick up RabbitMQ config file regardless of whether
|
||
|
it was present during service installation
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#659](https://github.com/rabbitmq/rabbitmq-server/issues/659)
|
||
|
|
||
|
* Erlang distribution failures for `rabbitmqctl` and cross-node links will
|
||
|
provide more detail when running on Erlang 19 (scheduled for release in Q3 2016).
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#401](https://github.com/rabbitmq/rabbitmq-server/issues/401)
|
||
|
|
||
|
* `rabbitmqctl list_consumers` now lists all consumers on a given queue
|
||
|
|
||
|
Previously it would only list one.
|
||
|
|
||
|
Contributed by Alexey Lebedeff (Mirantis).
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#701](https://github.com/rabbitmq/rabbitmq-server/issues/701)
|
||
|
|
||
|
* `rabbitmqctl list_queues` now correctly outputs rows for unavailable queues
|
||
|
|
||
|
Contributed by Alexey Lebedeff (Mirantis).
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#696](https://github.com/rabbitmq/rabbitmq-server/issues/696)
|
||
|
|
||
|
* `rabbitmqctl set_disk_free_limit mem_relative` erroneously rejected values greater than `1.0`
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#717](https://github.com/rabbitmq/rabbitmq-server/issues/717)
|
||
|
|
||
|
* Messages with an invalid client-provided `x-death` header value caused queue process termination
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#767](https://github.com/rabbitmq/rabbitmq-server/issues/767)
|
||
|
|
||
|
* Messages with priorities higher than queue max are now assigned max configured priority
|
||
|
and no longer cause an unhandled exception that results in queue process restart
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#795](https://github.com/rabbitmq/rabbitmq-server/issues/795)
|
||
|
|
||
|
* Policy-related `rabbitmqctl` commands could return unformatted messages
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#742](https://github.com/rabbitmq/rabbitmq-server/issues/742)
|
||
|
|
||
|
* `RABBITMQ_IO_THREAD_POOL_SIZE` is no longer ignored by `rabbitmq-server.bat`
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#705](https://github.com/rabbitmq/rabbitmq-server/issues/705)
|
||
|
|
||
|
* Deleting a vhost in parallel with updating a policy in it resulted
|
||
|
in unhandled exceptions
|
||
|
|
||
|
GitHub issues: [rabbitmq-server#755](https://github.com/rabbitmq/rabbitmq-server/issues/755),
|
||
|
[rabbitmq-server#759](https://github.com/rabbitmq/rabbitmq-server/issues/759),
|
||
|
[rabbitmq-server#744](https://github.com/rabbitmq/rabbitmq-server/issues/744)
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Connections now emit stats unconditionally when they are blocked and unblocked
|
||
|
by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#679](https://github.com/rabbitmq/rabbitmq-server/issues/679)
|
||
|
|
||
|
* New (node-local) health check command
|
||
|
|
||
|
`rabbitmqctl node_health_check` is a new command that performs basic health check of a node
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#398](https://github.com/rabbitmq/rabbitmq-server/issues/398)
|
||
|
|
||
|
* Automatic restart policy enabled for Windows service
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#645](https://github.com/rabbitmq/rabbitmq-server/issues/645)
|
||
|
|
||
|
* Default number of async I/O VM threads is now calculated based on the
|
||
|
number of available CPU cores
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#151](https://github.com/rabbitmq/rabbitmq-server/issues/151)
|
||
|
|
||
|
* `rabbitmqctl list_queues` now supports new flags, `--offline` and `--online`, that limit
|
||
|
result to only unavailable or available queues (queue leaders, to be more precise)
|
||
|
|
||
|
Contributed by Alexey Lebedeff (Mirantis).
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#688](https://github.com/rabbitmq/rabbitmq-server/issues/688)
|
||
|
|
||
|
* RabbitMQ will no longer log a warning about disabled kernel polling on Windows
|
||
|
|
||
|
The runtime does not support kernel polling (I/O completion ports) on Windows,
|
||
|
so there is nothing the user can do about it.
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#695](https://github.com/rabbitmq/rabbitmq-server/issues/695)
|
||
|
|
||
|
* Queue index is now updated in batches when messages are requeued
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#343](https://github.com/rabbitmq/rabbitmq-server/issues/343)
|
||
|
|
||
|
|
||
|
### Management plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Samples (stats) for abnormally terminated connections and channels will now be cleaned up more aggressively
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#198](https://github.com/rabbitmq/rabbitmq-management/issues/198)
|
||
|
|
||
|
* Cluster name could be returned by HTTP API as a non-string value
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#143](https://github.com/rabbitmq/rabbitmq-management/issues/143)
|
||
|
|
||
|
* Improved IE 11 compatibility
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#123](https://github.com/rabbitmq/rabbitmq-management/issues/123)
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Management plugin has a new, better parallelised event collector which is less likely to
|
||
|
fall behind.
|
||
|
|
||
|
GitHub issues: [rabbitmq-management#41](https://github.com/rabbitmq/rabbitmq-management/issues/41),
|
||
|
[rabbitmq-management#166](https://github.com/rabbitmq/rabbitmq-management/issues/166),
|
||
|
[rabbitmq-management#173](https://github.com/rabbitmq/rabbitmq-management/issues/173),
|
||
|
[rabbitmq-management#185](https://github.com/rabbitmq/rabbitmq-management/issues/185),
|
||
|
[rabbitmq-management#174](https://github.com/rabbitmq/rabbitmq-management/issues/174)
|
||
|
|
||
|
* Clients now can provide a human-readable connection name that will be displayed
|
||
|
in the management UI. Currently Java, .NET and Erlang clients support this.
|
||
|
In order to use this feature, set the `connection_name` key in client properties.
|
||
|
Note that this name doesn't have to be unique and cannot be used as a connection identifier,
|
||
|
for example, in HTTP API requests.
|
||
|
|
||
|
GitHub issue: [rabbitmq-server#104](https://github.com/rabbitmq/rabbitmq-server/issues/104)
|
||
|
|
||
|
* `GET /api/nodes/{node}/memory` and `GET /api/nodes/{node}/memory/relative` are new HTTP API
|
||
|
endpoints that return memory usage breakdown in absolute (same as `rabbitmqctl status`) and
|
||
|
relative terms.
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#161](https://github.com/rabbitmq/rabbitmq-management/issues/161)
|
||
|
|
||
|
* HTTPS related improvements in `rabbitmqadmin`.
|
||
|
|
||
|
GitHub issues: [rabbitmq-management#152](https://github.com/rabbitmq/rabbitmq-management/issues/152), [rabbitmq-management#151](https://github.com/rabbitmq/rabbitmq-management/issues/151), [rabbitmq-management#149](https://github.com/rabbitmq/rabbitmq-management/issues/149).
|
||
|
|
||
|
* Policies now can be listed (read) by the users tagged with `management` and `monitoring`
|
||
|
|
||
|
As well as those tagged with `policymaker` and `administrator`, of course.
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#156](https://github.com/rabbitmq/rabbitmq-management/issues/156)
|
||
|
|
||
|
* Effective rates mode is now displayed for cluster nodes by default
|
||
|
|
||
|
GitHub issue: [rabbitmq-management#177](https://github.com/rabbitmq/rabbitmq-management/issues/177)
|
||
|
|
||
|
|
||
|
### MQTT plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Resource alarms are handled correctly by MQTT connections
|
||
|
|
||
|
GitHub issues: [rabbitmq-mqtt#62](https://github.com/rabbitmq/rabbitmq-mqtt/issues/62)
|
||
|
|
||
|
* Session [pre-existing] presence is now correctly communicated to clients
|
||
|
|
||
|
GitHub issue: [rabbitmq-mqtt#61](https://github.com/rabbitmq/rabbitmq-mqtt/issues/61)
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Connections now emit stats unconditionally when they are blocked and unblocked
|
||
|
by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.
|
||
|
|
||
|
GitHub issue: [rabbitmq-mqtt#71](https://github.com/rabbitmq/rabbitmq-mqtt/issues/71)
|
||
|
|
||
|
* More connection details for MQTT connections reported to management UI
|
||
|
|
||
|
GitHub issue: [rabbitmq-mqtt#66](https://github.com/rabbitmq/rabbitmq-mqtt/pull/66)
|
||
|
|
||
|
### STOMP plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Resource alarms are handled correctly by STOMP connections
|
||
|
|
||
|
GitHub issues: [rabbitmq-stomp#68](https://github.com/rabbitmq/rabbitmq-stomp/issues/68),
|
||
|
[rabbitmq-stomp#67](https://github.com/rabbitmq/rabbitmq-stomp/issues/67)
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Connections now emit stats unconditionally when they are blocked and unblocked
|
||
|
by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.
|
||
|
|
||
|
GitHub issue: [rabbitmq-stomp#70](https://github.com/rabbitmq/rabbitmq-stomp/issues/70)
|
||
|
|
||
|
* More connection details for STOMP connections reported to management UI
|
||
|
|
||
|
GitHub issue: [rabbitmq-stomp#55](https://github.com/rabbitmq/rabbitmq-stomp/issues/55)
|
||
|
|
||
|
|
||
|
|
||
|
### Web STOMP plugin
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* More connection details for STOMP-over-WebSockets connections reported to management UI
|
||
|
|
||
|
GitHub issue: [rabbitmq-web-stomp#45](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/45)
|
||
|
|
||
|
* The plugin now sends a protocol header (`Sec-WebSocket-Protocol`) response when
|
||
|
client presents it.
|
||
|
|
||
|
GitHub issue: [rabbitmq-web-stomp#53](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/53)
|
||
|
|
||
|
|
||
|
### Web MQTT plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* More connection details for MQTT-over-WebSockets connections reported to management UI
|
||
|
|
||
|
GitHub issue: [rabbitmq-web-mqtt#3](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/3)
|
||
|
|
||
|
* Plugin deactivation now correctly stops TCP listener
|
||
|
|
||
|
GitHub issue: [rabbitmq-web-mqtt#7](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/7)
|
||
|
|
||
|
|
||
|
### .NET client
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Compatibility with SQL Server 2014 CLR restored
|
||
|
|
||
|
GitHub issue: [rabbitmq-dotnet-client#167](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/167)
|
||
|
|
||
|
* Autorecovering connections now respect all provided hostnames
|
||
|
when reconnecting.
|
||
|
|
||
|
GitHub issue: [rabbitmq-dotnet-client#157](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/157)
|
||
|
|
||
|
* `ConnectionFactory#CreateConnection` now respects all provided hostnames
|
||
|
when automatic connection recovery is disabled.
|
||
|
|
||
|
GitHub issue: [rabbitmq-dotnet-client#176](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/176)
|
||
|
|
||
|
### Erlang client
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* Certain channel failures resulted in a race condition during process [tree] shutdown.
|
||
|
|
||
|
GitHub issue: [rabbitmq-erlang-client#42](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/42)
|
||
|
|
||
|
|
||
|
### LDAP Authentication/Authorisation Backend
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
* LDAP connection pool is now more resilient to TCP connection closure/loss on Erlang/OTP 18.3
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-ldap#41](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/41)
|
||
|
|
||
|
* Non-existent group in `tag_queries` shouldn't terminate authorisation
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-ldap#15](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/15)
|
||
|
|
||
|
* `attribute` query should not fail when multiple values are returned
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-ldap#16](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/16)
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Virtual host is now available as a variable in `tag_queries`
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-ldap#13](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/13)
|
||
|
|
||
|
* Default LDAP connection pool size was increased from `10` to `64`
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-ldap#35](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/35)
|
||
|
|
||
|
|
||
|
### HTTP Authentication/Authorisation Backend
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* The plugin now uses HTTP 1.1 and keep-alive connections for requests.
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-http#20](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/20)
|
||
|
|
||
|
* It is now possible to configure the plugin to use `POST` requests instead of
|
||
|
`GET`, so that no sensitive information is logged.
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-http#7](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/7)
|
||
|
|
||
|
* The plugin now supports HTTP client TLS options, so authenticating apps can use HTTPS
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-http#29](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/29)
|
||
|
|
||
|
* Vhost access requests now include client IP address
|
||
|
|
||
|
GitHub issue: [rabbitmq-auth-backend-http#33](https://github.com/rabbitmq/rabbitmq-auth-backend-http/pull/33)
|
||
|
|
||
|
Contributed by Abdulrazak Alkl.
|
||
|
|
||
|
### Event Exchange plugin
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Policy events now include a vhost field
|
||
|
|
||
|
GitHub issue: [rabbitmq-event-exchange#17](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/17)
|
||
|
|
||
|
* Binding events now include a vhost field
|
||
|
|
||
|
GitHub issue: [rabbitmq-event-exchange#9](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/9)
|
||
|
|
||
|
* Millesecond resolution timestamp of events is now back as a message header
|
||
|
|
||
|
GitHub issue: [rabbitmq-event-exchange#12](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/12)
|
||
|
|
||
|
* `user.authentication.success` no longer has the `vhost` field
|
||
|
since vhost is only available at a later point. `connection.created`
|
||
|
events should be used to track successful connections if vhost
|
||
|
information is desired.
|
||
|
|
||
|
GitHub issue: [rabbitmq-event-exchange#13](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/13)
|
||
|
|
||
|
|
||
|
## Upgrading
|
||
|
|
||
|
To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.1, see http://rabbitmq.com/passwords.html.
|
||
|
|
||
|
To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading). All nodes that have RabbitMQ management plugin enabled
|
||
|
must be upgraded in lock step.
|
||
|
|
||
|
## 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.6.2.tar.gz`.
|