RabbitMQ 3.9.16
Core Server
Enhancements
Quorum queues: better forward compatibility with (currently in preview) RabbitMQ 3.10.
Significantly faster exchange re-import from definitions
on subsequent node restarts. Initial definition import still takes
the same amount of time as before.
RabbitMQ nodes will now filter out certain log messages related to
connections, channels, and queue leader replicas receiving internal protocol messages
sent to this node before a restart. These messages usually raise more questions
and cause confusion than help.
It is still possible to detect relevant underlying events (node or connection failures)
from other log messages.
Bug Fixes
rabbitmq-upgrade await_online_synchronized_mirror is now a no-op in single node
clusters
Prometheus Plugin
Bug Fixes
One metric that was exposed via CLI tools and management plugin's HTTP API
was not exposed via Prometheus scraping API.
RabbitMQ 3.9.15
Core Server
Bug Fixes
Stream delivery rate could drop if concurrent stream consumers consumed in a way
that made them reach the end of the stream often.
If a cluster that had streams enabled was upgraded with a jump of multiple
patch releases, stream state could fail an upgrade.
Significantly faster queue re-import from definitions
on subsequent node restarts. Initial definition import still takes
the same amount of time as before.
Priority queues could run into an exception in some cases.
Maintenance mode could run into a timeout during queue leadership transfer.
Prometheus Plugin
Bug Fixes
Prometheus collector could run into an exception early on node's
schema database sync.
Management Plugin
Bug Fixes
Connection data transfer rate units were incorrectly displayed when
rate was less than 1 kiB per second.
rabbitmqadmin now correctly loads TLS-related keys from its configuration file.
Corrected a help message for node memory usage tool tip.
LDAP Plugin
Enhancements
More Erlang 24.3's eldap library compatibility improvements.
RabbitMQ 3.9.14
Changes Worth Mentioning
Core Server
Bug Fixes
Restart of a node that hosted one or more stream leaders resulted in
their consumers not "re-attaching" to the newly elected leader.
Large fanouts experienced a performance regression when streams were not
enabled using a feature flag.
Stream management plugin did not support mixed version clusters.
Stream deletion did not result in a basic.cancel being sent to AMQP 0-9-1 consumers.
Stream clients did not receive a correct stream unavailability error in some
cases.
It is again possible to clear user tags and update the password in a single operation.
Enhancements
Forward compatibility with Erlang 25.
File handle cache efficiency improvements.
Uknown stream properties (e.g. those requested by a node that runs a newer version)
are now handled gracefully.
Temporary hostname resolution issues (attempts that fail with nxdomain)
are now handled more gracefully and with a delay of several seconds.
Build time compatibility with Elixir 1.13.
OAuth 2 AuthN/AuthZ Backend Plugin
Bug Fixes
auth_oauth2.additional_scopes_key in rabbitmq.conf was not converted correctly
during configuration translation and thus had no effect.
LDAP AuthN/AuthZ Backend Plugin
Enhancement
Adapt to a breaking Erlang 24.3 LDAP client change.
Shovel Plugin
Enhacements
Shovels now can be declared with delete-after parameter set to 0.
Such shovels will immediately stop instead of erroring and failing to
start after a node restart.
Consul Peer Discovery Plugin
Enhancements
Support for Consul 1.1 response code changes
when an operation is attempted on a non-existent health check.
RabbitMQ 3.9.13
Core Server
Bug Fixes
Disk space monitor now correctly parses output on (at least some) systems where non-ASCII characters are used in paths.
Stream leader election is now deterministic when cluster is undergoing a rolling upgrade.
Enhancements
Queue and binding definition import can be delayed until a moment
when at least N nodes (e.g. three) have joined the cluster. This way imported quorum queues will have a desired
number of replicas from the start.
3.9.12
Core Server
Bug Fixes
Work around a slow Windows-specific memory leak in Erlang's file:read_file/1.
log.file.rotation.date pattern parser now supports more values and is closer to Lager in RabbitMQ 3.7 and earlier releases.
User limits were ignored by definition import.
Stream coordinator could run into an exception in some scenarios.
On node shutdown, stopped applications were unintentionally logged at the error level.
Enhancements
basic.* AMQP 0-9-1 operations now consume fewer CPU cycles.
More efficient (up to 67% more) user addition and updates, including during definition import.
Authentiication and authorization backend exceptions could potentially leak user-provided credentials to node log.
When a non-existent stream offset is requested, the server will return a more appropriate error code.
Stream operations that fail due to an unavailable leader now use a separate error code from the case when the stream does not exist.
Deprecated classic health check is now less resource intensive (but still very intensive compared to modern alternatives).
Operator and regular policy merging now supports keys that use boolean values. The operator value overrides the regular policy one.
Free disk space monitoring robustness improvements on Windows.
Unnamed parameters and policies in definition files will now be rejected as invalid.
OAuth 2 Plugin
Enhancements
HTTPS client and related improvements for JWKS URLs.
RabbitMQ 3.9.11
Core Server
Bug Fixes
When a TLS-enabled listener failed to stop, it logged all of its settings
which could contain sensitive values.
Enhancements
Quorum queues now store commands for enqueued messages in a more compact format
on disk (some derivative data has been dropped).
queue.declare-ok response to AMQP 0-9-1 clients operating on a stream could return a ready-for-delivery
message count value that was out of sync with the stream leader replica.
Classic queues now deliver more efficiently on channels that had global QoS changed
during consumer operation.
Prometheus Plugin
Enhancements
New optional metrics provided by the GET /metrics/detailed endpoint. These metrics are cluster-wide,
and therefore must not be aggregated.
Bug Fixes
A help tip on the policies page was misplaced.
Management Agent Plugin
Enhancements
Disabling the plugin will stop metric collection performed periodically by
queues, streams, connections, et cetera.
RabbitMQ 3.9.10
Core Server
Bug Fixes
Make stream coordinator more defensive to rapid declaration and deletion cycles
Enhancements
Several inter-node communication listener settings are now exposed to rabbitmq.conf:
# this port range is used by default
distribution.listener.port_range.min = 25675
distribution.listener.port_range.max = 25675
# instead of listening on all interfaces
distribution.listener.interface = 192.168.0.1
OAuth 2 Plugin
Bug Fixes
Signing keys specified in rabbitmq.conf were not translated correctly,
resulting in exceptions during permission checks.
3.9.9
Core Server
Bug Fixes
Fixed an issue where node monitor could produce a false network partition when
one of the cluster members was restarted
Message store resiliency improvements
Reduced log noise in certain scenarios where a new queue leader is elected
Queue leader rebalancing now logs less
Enhancements
cluster_formation.target_cluster_size_hint is a new configuration setting that can be used to specify expected initial cluster size.
This can be used by features, plugins or tools that expect a certain minimum number of clusters nodes
to join during initial cluster formation
Prometheus Plugin
Enhancements
Metric rendering efficiency improvements (mostly latency)
Bug Fixes
TLS-enabled Prometheus endpoint listener port was not correctly stored internally
Management Plugin
Bug Fixes
Persistent message count is now displayed correctly on individual queue pages
Restore compatibility with IE 11
Consistent Hashing Exchange Plugin
Bug Fixes
Corrected deletion of duplicate bindings between an exchange and a queue
Contributed by @FalconerTC
Dependency Upgrades
Ra was upgraded to 2.0.2
Osiris was upgraded to 1.2.3
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Not committed (merge conflicts...):
net/radsecproxy/distinfo
The following distfiles could not be fetched (fetched conditionally?):
./net/citrix_ica/distinfo citrix_ica-10.6.115659/en.linuxx86.tar.gz
./net/djbdns/distinfo dnscache-1.05-multiple-ip.patch
./net/djbdns/distinfo djbdns-1.05-test28.diff.xz
./net/djbdns/distinfo djbdns-1.05-ignoreip2.patch
./net/djbdns/distinfo djbdns-1.05-multiip.diff
./net/djbdns/distinfo djbdns-cachestats.patch
3.9.8:
Core Server
Bug Fixes
* When the mandatory flag was used when publishing to classic queues,
but publisher confirms were not, channels memory usage would grow indefinitely.
* `rabbitmq-diagnostics memory_breakdown` failed to read memory of connection
reader, writer and channel processes.
* In some environments, Stream replicas advertised IP addresses that could not be reached by cluster peers
(eg. IP addresses behind a NAT in a Docker deployment). RabbitMQ node hostnames are now advertised as well
so that other peers can resolve them to get an externally visible IP address.
3.9.7:
All Components
All bytecode is now compiled using the +deterministic compiler flag. This should eliminate the capture of some irrelevant build environment attributes in produced artifacts, improve consistency between builds, and reduce the file level diff between release artifacts.
Core Server
Enhancements
Classic queue shutdown now uses a much higher timeout (up to 10 minutes instead of 30 seconds).
In environments with many queues (especially mirrored queues) and many consumers this means that the chance of queue indices rebuilding after node restart is now substantially lower.
Prometheus Plugin
Enhancements
More configurability for metrics exposed via the Prometheus endpoint.
Shovel Plugin
Bug Fixes
Shovel URIs could be logged with credentials in some scenarios.
3.9.6:
Core Server
Bug Fixes
TLS information delivered in Proxy protocol header is now attached to connection metrics as if it was provided by a non-proxying client.
max_message_size had a one-off error in the validator.
mirroring_sync_batch_size was incorrectly validated as if it represented batch size in bytes. It represents batch size in number of messages, so the new default hard cap is now 1M (a very high number that's impractical)
Stream Plugin
Bug Fixes
Offset parameters were not stored correctly in some cases.
Partitions list order is now stable.
When stream clients close connections abruptly, publisher and consumer metrics get cleaned up correctly.
Management Plugin
Enhancements
Stream publishers are now listed on the individual stream page.
Counters have been added to the tiles of several sections on detail pages.
3.9.5:
Core Server
Bug Fixes
Virtual host metadata (description, tags) was not imported from definitions.
Reduced unnecessary debug logging from streams.
AWS Peer Discovery Plugin
Enhancements
AWS API calls are now retried multiple times.
Contributed by AWS.
Management Plugin
Enhancements
PUT /api/vhosts/{name} now can update metadata (tags and descriptions) for existing virtual hosts.
3.9.4:
Core Server
Enhancements
New Prometheus metrics for alarms
Nodes will now use four more environment variables, if set: RABBITMQ_DEFAULT_USER (overrides default_user in rabbitmq.conf), RABBITMQ_DEFAULT_PASS (overrides default_pass), RABBITMQ_DEFAULT_VHOST (overrides default_vhost) and RABBITMQ_ERLANG_COOKIE (sets shared authentication secret value). These variables are not recommended to be used in production but can be the only realistic option in some environment, such as service containers, ECS, and so on. Most users should continue using rabbitmq.conf and a securely generated local cookie file.
Definitions now can be imported from different sources, including those provided by plugins. Original local filesystem source is still supported in a backwards-compatible way.
3.9.3:
Core Server
Bug Fixes
Queues that had messages with per-message TTL in them could fail to recover their indices after a restart.
JSON logging could fail with an exception when a logged event included epoch-based timestamp value.
JSON logging now uses integers (as opposed to floats) to represent epoch-based timestamps
Enhancements
RabbitMQ application no longer reports the stopping event to systemd. This was counterproductive when the application was stopped but the runtime (Erlang VM) was kept running, e.g. via rabbitmqctl stop_app or by the pause minority partition handling strategy.
Now systemd service monitoring will recognize a node as stopped only when the runtime is stopped, which is usually the behavior operators expect.
3.9.2:
CLI Tools
Bug Fixes
rabbitmq-upgrade drain and rabbitmq-upgrade revive now log warning and info level instead of alert.
Shovel Plugin
Bug Fixes
Multiple Shovels could be started in some cases involving node restarts of failures.
Federation Plugin
Bug Fixes
Multiple Federation links could be started in some cases involving node restarts of failures.
3.9.1:
Core Server
Bug Fixes
Clients that used global QoS prefetch (deprecated as of 3.9.0) ran into an exception when acknowledging deliveries.
Improved resiliency of stream coordinator in certain conditions.
Nodes failed to start when hostname contained non-ASCII (broader Unicode) characters.
CLI Tools
Bug Fixes
rabbitmq-diagnostics stream_status fails with an exception when the --tracking option was used.
rabbitmq-diagnostics stream_status used an outdated documentation guide link.
RabbitMQ Erlang Client
Bug Fixes
New releases of the client are again published to Hex.pm.
connection_timeout was adjusted to avoid a confusing warning.
Corrected a typo in direct connection net tick time adjustment.
3.9.0:
Streams
Erlang 24 Support
Kubernetes
Logging in JSON
RabbitMQ 3.8.17
RabbitMQ 3.8.17 is a maintenance release that includes a security patch.
Security Patches
This release addresses an undisclosed vulnerability with CVSS 3.1 score of 2.4 (low).
This section will be updated when the details are made public.
RabbitMQ 3.8.16 release
The RabbitMQ team is pleased to announce the release of RabbitMQ 3.8.16.
This is a maintenance release that follows-up to 3.8.15 to reintroduce AWS peer discovery plugin that was unintentionally excluded. Release notes can be found in the change log.
This release requires Erlang/OTP 23.2 and is the first release to support Erlang 24.
Binary builds and packages of the new release can be found on GitHub, Cloudsmith, or Package Cloud. See RabbitMQ installation guides to learn more.
We encourage all users of earlier versions of RabbitMQ to upgrade to this latest release.
As always, we welcome any questions, bug reports, and other feedback on this release, as well as general suggestions for features and enhancements in future releases. Contact us via the rabbitmq-users Google group or RabbitMQ community Slack.
RabbitMQ 3.8.15 release
The RabbitMQ team is pleased to announce the release of RabbitMQ 3.8.15.
This is a maintenance release that includes two security patches. Release notes can be found in the change log.
This is the last release to support Erlang/OTP 22.
We encourage all users to consult release notes but skip this release and upgrade to 3.8.11 or later.
As always, we welcome any questions, bug reports, and other feedback on this release, as well as general suggestions for features and enhancements in future releases. Contact us via the rabbitmq-users Google group or RabbitMQ community Slack.
3.8.11:
Bug fixes
This release requires Erlang/OTP 22.x or later
3.8.10:
We encourage all users to consult release notes but skip this release and upgrade to 3.8.11 or later.
Bug fixes
More features supported by quorum queues
Usability improvements
Deprecations
RabbitMQ 3.8.9 is a maintenance release.
It focuses on bug fixes and usability improvements.
RabbitMQ 3.8.8 is a maintenance release.
It focuses on bug fixes and usability improvements.
This releases introduces a new node operation mode, called the maintenance mode.
This feature is useful when performing rolling upgrades and is covered
in more detail below.
RabbitMQ 3.8.7 is a maintenance release that patches
a security vulnerability.
RabbitMQ 3.8.6 is a maintenance release.
It focuses on bug fixes and usability improvements.
RabbitMQ 3.8.5 is a maintenance release.
It focuses on bug fixes and usability improvements.
RabbitMQ 3.8.4 is a maintenance release. It focuses on bug fixes and usability
improvements. etcd peer discovery plugin includes potentially breaking changes which are covered in detail below.
RabbitMQ 3.8.2
Changes
Core Server
Enhancements
Raft implementation optimizations.
Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers
when appropriate and safe.
If x-queue-type argument is not provided at queue declaration time, the type is assumed to be classic
instead of missing.
Quorum queue consumer timeout now can be configured using new style configuration file:
# Hard timeout for quorum queue consumer acknowledgemnts of two minutes
consumer_timeout = 120000
Bug Fixes
A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time,
which would prevent the node from successfully recovering the log after restart.
Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper.
Quorum queue with single active consumer enabled crashes after some basic.get calls. Quorum queues now forbid basic.get when single active consumer is enabled.
CLI Tools
Enhancements
It is now possible to export and import definitions without the use of plugins with
rabbitmqctl export_definitions and rabbitmqctl import_definitions:
# export as a JSON file
rabbitmqctl export_definitions /path/to/target.file.json
# export as JSON to standard output and pipe to jq
rabbitmqctl export_definitions "-" | jq
# export as a compressed Erlang term file
rabbitmqctl export_definitions /path/to/target.file --format=erlang
# learn more
rabbitmqctl help export_definitions
# import from a JSON file
rabbitmqctl import_definitions /path/to/target.file.json
# import JSON from standard input
cat /path/to/definitions.json | rabbitmqctl import_definitions "-"
# import from a compressed Erlang term file
rabbitmqctl import_definitions /path/to/target.file --format=erlang
# learn more
rabbitmqctl help import_definitions
Entities with amq.* prefixes are now skipped during import instead of producing an error.
Bug Fixes
rabbitmqctl await_startup failed with an exception when RabbitMQ application was stopped but the
runtime (Erlang VM) was running.
Management Plugin
Bug Fixes
Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
and contained operator policies.
Enhancements
Metric aggregation optimizations.
MQTT Plugin
Enhancements
Throughput improvements ranging from 14 to 60 percent depending on workload.
Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
Bug Fixes
Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time,
which would prevent the node from successfully recovering the log after restart.
Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
AMQP 1.0 Plugin
Enhancements
Throughput improvements.
STOMP Plugin
Enhancements
Throughput improvements.
Web STOMP Plugin
Enhancements
Clients now can authenticate using an x.509 (TLS) certificate.
Prometheus Plugin
A small number of queue metrics were not read from the metric store correctly.
This isn't supported on some operating systems. If it turns out to be
required by more packages we should create a tool.mk for lang/elixir.
Mark the package MAKE_JOBS safe again.
3.7.2
- Bug fix in the HTTP auth backend
3.7.1
- Bug fixes
3.7.0
- Minimum required Erlang version is now 19.3
- Automation-friendly cluster formation
- Distributed management plugin, including minor breaking HTTP API changes.
- Simpler, ini-style configuration format
- Per-vhost limits
- Operator policies
- Topic-based authorisation
- Cross-protocol Shovel (currently supports AMQP 0.9.1 and AMQP 1.0)
- Command-line tools are extensible via plugins
- Message store multi-tenancy
- Proxy protocol support
- Web STOMP no longer supports WebSocket emulation
- Java and .NET client releases no longer track RabbitMQ server releases
- .NET client now supports .NET Core.
- Management plugin extensions now must target Cowboy 2.0
- Java client for RabbitMQ HTTP API
rabbitmq 3.6.14
Debian and RPM packages
- systemd service unit no longer has trailing comments that could lead
nodes into restart loops on some systems.
Management Plugin
- Expandable sections on node metrics page failed to expand.
rabbitmq 3.6.13
Core Server
- Memory usage monitor uses subprocesses a lot more sparingly.
- Very busy queues are now more efficient at prioritizing consumers
- Queue master strategies now take additional queue HA arguments into
account.
- Logging to standard output using RABBITMQ_LOGS=- wasn't possible on
Windows.
- Queue master locator name now can be specified as Erlang strings.
- Direct Erlang client connections could fail with obscure messages
when target node was still booting.
- supervisor2 now can be used in environments that perform hot code
upgrades.
- systemd service file now white lists exit code 69.
- Example systemd service file now includes service restart settings.
- Queue master locator strategy now can be configured using strings.
- Plugin activation avoids logs things that can be confusing.
Management Plugin
- Minor efficiency improvements around stats collection.
- jQuery upgraded to 1.12.4.
- UI improvements.
- It is now possible to configure an HTTP API path prefix for the
plugin.
- Queue details page no longer truncates node name.
- Policy name in queue and exchange info is now a link.
- DELETE /api/connections/{name} is now more defensive.
Core Server
- Process responsible for running the autoheal partition handling
strategy could run into a deadlock with its peers, preventing autoheal
from completing.
- Garbage collection of mirrored queue metrics on nodes that did not
host a master or mirror for a queue affected delivery and
acknowledgement rates. This could result in rates being 0 or negative
when they should not be.
- Stats emission could prevent queue mirrors from performing garbage
collection and consume memory even when they were empty.
- RABBITMQ_SCHEDULER_BIND_TYPE and RABBITMQ_DISTRIBUTION_BUFFER_SIZE now
can be set via rabbitmq-env.conf.
Shovel Management Plugin
- Passwords in source and destination URIs are now redacted out.
Federation Management Plugin
- Passwords in upstream URIs are now redacted out.
Bug Fixes
- rabbitmqctl wait exited with the status code of 0 when node stopped
because it could not contact any cluster peers to [re-]join.
- rabbitmqctl forget_cluster_node used in offline mode could result in
promotion of a node that's no longer a cluster member.
- Queue master locator could not be set using optional queue arguments
(x-arguments).
- CLI tool (e.g. rabbitmqctl) man pages were not rendered correctly.
Enhancements
- Disk space monitor will periodically retry (every 2 minutes by
default, up to 10 times) before going into disabled state as
external tools used to monitor available disk space can fail or
produce unexpected output temporarily.
- Memory relative free disk space limits now support integer values as
well as floats.
Management and Management Agent Plugins
- TLS-related settings in HTTP API listeners could break JSON
serialisation for the GET /api/overview endpoint.
- Non-numerical values for numerical stats are now handled safety by
stats aggregation.
- Stats are no longer emitted for connections that are not considered
to be in the fully initialised state.
- POST requests now instruct clients to close TCP connections.
- In some popular browsers (Chrome, Internet Explorer) a POST request
followed by an immediate GET request would result in a 400 response.
Other browsers do no exhibit this behaviour.
- I/O average time per operation graph didn't match legend.
- Sample retention policies are now validated more strictly to avoid
configurations that are not supported and will lead to exceptions.
- Certain stats for connections were not initialised as numerical
values, which resulted in log noise.
- UI operation for binding deletion did not respect optional (extra)
binding arguments.
- Current virtual host is pre-selected on the "Add/update policy"
form.
MQTT Plugin
- A non-initialized connection (e.g. one that failed early because
client-provided payload wasn't a valid MQTT payload) produced a
crash report log entry during termination.
LDAP Plugin
- Stale connection purging in LDAP connection pool could fail with a
badmatch.
Trust Store Plugin
- Certificate change detection algorithm no longer uses stat(2) on
certificate directory because of its limitations that could lead to
undetected changes in certain scenarios.
Web STOMP Plugin
- The plugin failed to start after being stopped and re-enabled.
- Server-initiated consumer cancellation failed with an exception.
Management Visualiser Plugin
- The plugin wasn't compatible with recent 3.6.x releases.
Management and Management Agent Plugins
- Security Vulnerability Patches
- CVE-2017-4965: XSS vulnerabilities in management UI
- CVE-2017-4966: authentication details are stored in browser-local
storage without expiration
- CVE-2017-4967: XSS vulnerabilities in management UI
- Bug Fixes
- Certain TCP and TLS listener configuration settings could break
JSON serialisation of GET /api/overview responses.
Federation Plugin
- More numerical types are now handled for the "hops" property.
.NET Client
- Calling ExchangeBind more than once with the same arguments threw an
exception.
3.6.5
- Bug fixes
3.6.4
- Bug fixes
- Erlang 19.0 compatibility
- Usability improvements
3.6.3
- Important bug fixes
- systemd support in the Debian package
- New OpenGPG key used for artifact signing
- New plugins included into the distribution
- Usability improvements
3.6.2
- Bug fixes
- New statistics collector in management plugin
- Usability improvements
RabbitMQ 3.6.1 is a maintenance release that includes a fix for
CVE-2015-8786, a vulnerability in RabbitMQ management plugin.
Server
- Purging a lazy queue could result in an exception
- Ensure epmd is running before starting RabbitMQ node on Windows
- Channel error could make broker unreachable
- (Automatic) deletion of an auto-delete queue could lead
to blocked channels
- During (from scratch) queue sync, queue master node didn't respect
mirror alarm state. With large data sets this could drive mirror
node out of memory.
- Changing password for users with non-standard (think broker
configuration) password hashing function, for example, those migrated
from 3.5.x releases, didn't update effective hashing function.
- Heavy and/or prolonged rabbitmqctl use could exhaust Erlang VM atom table
- "Min masters" queue master location strategy could result in an error.
- Fixed a race condition in pause_minority handling mode.
- Significantly reduce possibility of a race condition when an exchange
is deleted and immediately re-declared, e.g. by a federation link.
- amq.rabbitmq.log messages now have information about originating
node in message headers
- scripts/rabbitmq-env now works with GNU sed 4.2.2
- Exceptions in VM memory use calculator no longer affect broker startup
- Direct Reply-to capability is now advertised to clients
- Paths with non-ASCII characters on Windows are now handled
- Configurable number of TCP connection acceptors
- rabbitmqctl cluster_status now includes cluster-wide resource alarm status
- Windows installer no longer jumps over installation log
- Improved rabbitmqctl reset error messages
- More unsigned field data types are supported.
Federation Plugin
- Significantly reduce possibility of a race condition when an exchange
is deleted and immediately re-declared, e.g. by a federation link
Management plugin
- CVE-2015-8786: user-provided query parameters lengths_age and
lengths_incr had no validation and could be used to exhaust server
resources.
- Password hashing function is now included in exported definitions
- Internet Explorer (9+) compatibility restored
- Internet Explorer 11 compatibility fixes
- When policy fails to be created with invalid paramaters a sensible
error message will be displayed.
Federation Management plugin
- Federation link form now includes more settings (that are exchange-
and queue-federation specific)
Clean up and simplify Makefile.
Breaking changes in 3.6.0:
- Minimum required Erlang version is R16B03 for plain ("just TCP")
connections for all protocols and 17.5 for TLS ones (18.x is
recommended for both).
- .NET client now requires .NET 4.5.
- "Immediate" flag is removed from the .NET client (it hasn't been
supported by the server since RabbitMQ 3.0).
- Default subscription TTL in MQTT is now 24 hours.
- Server artifacts are now distributed as xz archives and not gz.
- Build system has been completely reworked and now uses erlang.mk.
3rd party plugins must be adapted to the new build system.
Key improvements in this release are:
- Lazy queues
- Much better queue synchronisation throughput
- Lower RAM use, tunable flow control
- Stronger password encryption with pluggable algorithms
- Development moved to GitHub; build system now uses erlang.mk
- Significant improvements to Web STOMP
- Experimental WinRT-compatible .NET client, SQL CLR compatibility
in the "regular" one
- Pagination in management UI
- More popular plugins now ship with the broker: rabbitmq_sharding
and rabbitmq_event_exchange, for example.
Full release notes:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_0