Project: RabbitMQ (App Definition and Development / Streaming & Messaging)
File: 3.6.7.md

RabbitMQ `3.6.7` is a maintenance release that includes a that stores collected stats on all cluster nodes (as opposed to one dedicated node). See the and a note at the end of this release notes document for general documentation on upgrades. Erlang/OTP R16B03 users on Debian and Ubuntu may run into . While this , we recommend upgrading to at least Erlang 18.0 if possible (see and ). In clusters that have rabbitmqmanagement or rabbitmqmanagement_agent plugins enabled all nodes must be upgraded at the same time. There is a couple of public-facing changes in the HTTP API. Integration test suites that rely on HTTP API for listing or closing connections, channels, etc need to be adjusted with this plugin: We recommend reducing stats retention periods (see , ) Because stats emission is now two-step and asynchronous, test suites may need to wait for events to propagate before asserting on them (see , ). POST and PUT responses now use `201 Created` instead of `204 No Content`. Single atom TCP listener options such as `binary` in this example: ``` erlang [ {rabbit, [ {tcplistenoptions, [ binary, {backlog, 4096}, {sndbuf, 32768}, {recbuf, 32768} ]} %% }]. ``` won't serialise to JSON correctly in this release. This is . Note that `binary` is one of the default options and there is no need to override it. There are no other known incompatibilities with 3.6.2 or later releases. queue leader process could terminate with a `{badmatch, {error, notfound}}` error. GitHub issue: `rabbitmq-service.bat` should exit with a non-0 code when installation fails. GitHub issue: `rabbitmqctl stop_app` now produces a more technically correct output about what the operation does. GitHub issue: Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact one of the previously seen peers periodically (10 times with 30 second intervals by default). GitHub issue: Increased credit flow default settings, background GC is disabled by default for more predictable latency. GitHub issue: TLS listeners now support SNI (via ). GitHub issue: Successful connection authentication now leaves additional log entries, just like authentication failures. It is now easier to see from the log what user connected to what vhost. GitHub issue: Internal authentication backend now supports credential validators. GitHub issue: Worker process shutdown timeout now can be configured. GitHub issue: Default Erlang VM ETS limit was increased from 1400 to 50000. This is necessary to support a larger number of virtual hosts with the new management

GitHub issue: `RABBITMQPLUGINSDIR` now supports multiple directories (colon-separated on Linux and other UNIX-like platforms, semicolon-separated on Windows). Contributed by Alexey Lebedeff. GitHub issue: Background GC now can be disabled and configured to use a different target interval value. Original patch by Tim Stewart. GitHub issue: `L`-prefixed (`long-long-int`) attribute table (header) keys are now accepted by the parser. GitHub issue: Node health check responded with status 500 if health check failed due to a timeout. GitHub issue: `GET /api/nodes` response entries contained a duplicate JSON document property (key). GitHub issue: `rabbitmqadmin` listing commands failed to output values that contained non-ASCII characters (such as queue names in Asian languages). GitHub issue: Queue details page now correctly displays the number of paged out transient messages. GitHub issue: When user filter returned no results, the message incorrectly said "no vhosts." GitHub issue: New management plugin implementation that stores stats on all cluster nodes. GitHub issue: Purging a queue via UI now requires a confirmation. GitHub issue: Queue deletion and purging buttons now use separate UI panes. GitHub issue: Plugins that use HTTP (management, Web STOMP, Web MQTT) now register their ports as TCP listeners. GitHub issue: Overview chart legend labels are now clearer and grouped in a more useful way. GitHub issue: Creating a queue in a vhost the user has no access to now provides reasonable feedback. GitHub issue: Listing queues in a vhost the user has no access to now provides reasonable feedback. GitHub issue: Deletion UI dialog has clearer wording. GitHub issue: When creating exchanges/queues, virtual host is now pre-selected to match the "current" one. GitHub issue: User creation form now features the "impersonator" tag. GitHub issue: Queue declaration form now includes a shortcut button for switching queue mode to "lazy." GitHub issue: Fixed a memory leak in statistics tables in case of certain abnormal connection termination scenarios. GitHub issue: Last Will messages that had the `retained` flag set were not retained. GitHub issue: More metrics are reported for MQTT connections. GitHub issue: Certain virtual host names could cause MQTT retainer to not start. GitHub issue: Improved logging around connection termination due to unparseable traffic, e.g. HTTP requests sent to MQTT plugin port. GitHub issue: There is now a way to map MQTT listener ports (target client connection ports) to vhosts. GitHub issue: There is now a way to map client certificate CN values to vhosts and thus make specific clients connect to designated

GitHub issue: Connections to non-existent hosts are now gracefully closed with a reasonable error code (invalid credentials). GitHub issue: More configuration values are accepted as strings (as well as binaries). GitHub issue: Fixed a memory leak in statistics tables in case of certain abnormal connection termination scenarios. GitHub issue: More metrics are reported for STOMP connections. GitHub issue: The plugin now tolerates a higher rate of link [re-]connection failures. The rate sustained depends on the `reconnect-delay` parameter configured for the upstream (see the issue below for details). GitHub issue: Improved logging for federation links that voluntarily stop, e.g. because something in their controlling policy has changed. GitHub issue: Improved logging around network partitions that can affect federation links. GitHub issue: New HTTP API endpoint that lists only down links. GitHub issue: New HTTP API endpoint that restarts a link. GitHub issue: Match query was matching too eagerly ("bi-directionally"). GitHub issue: Default LDAP server port was unintentionally set to `3890` (instead of `389`). GitHub issue: LDAP server connection pool now supports time-based expiration (and closure) of inactive LDAP connections. GitHub issue: Internal buffer length of processes that implement the `gen_server2` behaviour (most notably queues) are now collected and visible in `rabbitmq_top`. Combined with Erlang mailbox length this provides a more or less complete picture of Erlang message backlog a process has. GitHub issue: Resource alarm events are now accessible via the event exchange. GitHub issue: Web MQTT port is now registered as a TCP listener and shows up in the management UI listeners section. GitHub issue: When HTTP basic authentication is used but credentials are not provided, the plugin should fall back to default configured STOMP plugin credentials. GitHub issue: Web STOMP port is now registered as a TCP listener and shows up in the management UI listeners section. GitHub issue: Pluggable certificate providers (sources). GitHub issue: HTTP(S) certificate provider (source). GitHub issue: `AutorecoveringConnection` had unsynchronised concurrent access to several of its mutable field. GitHub issues: , The client OTP app now correctly defines dependencies on `compiler` and `syntax_tools`. GitHub issue: URI parser now accepts binaries as well as strings. GitHub issue: 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.0, see http://rabbitmq.com/passwords.html. To upgrade a RabbitMQ cluster, follow the instructions . 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.7.tar.gz`.