## 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`.