- Erlang 18.1 compatibility.
- Prevent EACCESS errors on Windows when queue journal is cleared.
- When multiple authorization backends are used, user tags from all
of them should be preserved.
- Force a (per-queue, not global) GC when a queue pages messages
to disk.
- MQTT Plugin: Queues used by QoS 1 subscriptions are no longer
deleted when the only subscriber disconnects.
- STOMP Plugin: Trailing new line character now can be optional.
- Various performance improvements in the server
- Reduce default heartbeat interval from 580 to 60 seconds
- Force essential TCP options, especially {reuseaddr, true}.
- Catch SIGTERM and other signals in the rabbitmq-server script to stop
RabbitMQ gracefully
- Fix a queue hang when a slave node is lost
- Fix a crash during startup when RabbitMQ tries to clean non-existing
bindings
- Support backticks in the password field when adding a user with
rabbitmqctl on Unix
- Fix a problem in gen_server2 causing calls to timeout under certain
conditions
- Federation: Fix a crash when certain headers are already present
in the forwarded message
- Federation: Increase reconnection delay from 1 to 5 seconds
- Federation: Ignore federation-specific headers added by clients
- Management UI: Do not consider non-UTF-8 content as invalid
- Management UI: Split long Base64 content in multiple lines
- Management UI: Fix a bug with rounding moving averages
- MQTT: Coerce default_user, default_pass, exchange and vhost to
Erlang binaries
- Stomp: Set the redelivered header to a boolean value
- Stomp: Properly propagate extensions headers (x-headers) in
the SUBSCRIBE and SEND frames
- Stomp: Duplicate subscription IDs no longer result in unhandled
exceptions
Full release notes:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_5_5
- rabbitmq-env.conf.bat Support on Windows
- Fixed excessive SASL Logging on Windows
- Added warn as Alias to warning
- Added rabbitmqctl purge_queue
- Added file_handle_cache:clear_read_cache/0
- Improved rabbitmqctl Error Messages
- Kernel Polling Enabled Unconditionally by Default
- Easier I/O Thread Pool Size Configuration
- Higher I/O Thread Pool Size Default
- Improved Heartbeat Timeout Logging
- Fix: Recoverable Mirror Could Be Reset Due to Race Condition
- Fix: Throughput Regression Fix
- Fix: x-death headers can now safely be republished by clients
- STOMP: Test Suite Upgraded to Stomp.py 4.x
- STOMP: End Frame With a Newline Character
RabbitMQ 3.5.3:
- If rabbitmqctl can't contact a node, suggest to verify any Erlang TLS
distribution configuration
- Ensure the memory monitor is fully started before the file handle cache
is used
- Management plugin: Fix a crash during RabbitMQ startup if
force_fine_statistics is set in rabbitmq_management_agent configuration
RabbitMQ 3.5.2:
- Improve integration with Docker
- Add a way to send log messages (both "normal" and sasl messages) to stdout
- Do not try to use exec before su ... as su(1) forks a process anyway
- Report a queue is under flow control only if it was in this situation
in the last 1 second, instead of the last 5 seconds previously
- Add a check to ensure the Mnesia directory is not shared with the PID file
location or the plugin expansion directory
- Ensure the file handle cache remains under the memory high watermark
when syncing a mirrored queue
- Restore support for messages stored on disk with the previous x-death
header format
- Ensure passwords containing $ characters are properly escaped so they are
not interpreted by the shell, when a password is changed using rabbitmqctl
change_password
- Management plugin: Allow to configure rates_mode even if only
rabbitmq-management-agent is enabled
- Management plugin: Fix a badarith crash if for some reasons, the disk free
space or the file descriptors count are temporarily reported incorrectly
- STOMP plugin: Ensure the "processor" thread is terminated at the same time
the "reader" thread exits
RabbitMQ 3.5.1:
- Introduce a new channel log category for channel log messages
- Ensure consumer_closed events are emitted for the actually closed channels
only, not all of them
- Ensure the number of x-death message headers doesn't grow indefinitely
- Adjust the file read buffer cache size to avoid useless reads
- Ensure the priority queue plugin reports its memory consumption properly
- Prevent a crash while synchronising paged out priority queues
- Pass the PID file to rabbitmqctl stop in rabbitmq-server.ocf, exactly
like Debian- and Red Hat-flavour init scripts
- AMQP plugin: Fix heartbeats
- AMQP plugin: Respond with a protocol error if a disposition frame
is incorrect
- AMQP plugin: Fix a crash if the initial-delivery-count is not 0
- Version 3.3.5 fixes a number of bugs in 3.3.4 and earlier versions.
- Version 3.3.4 fixes a small number of bugs in 3.3.3 and earlier versions.
In particular it fixes a bug introduced in 3.3.3 which could cause startup
to fail under some circumstances.
- Version 3.3.3 fixes a small number of bugs in 3.3.2 and earlier versions.
In particular it fixes a bug introduced in 3.3.2 which could cause
logging to stop under some circumstances.
Changes since 3.3.1:
server
------
bug fixes
26180 prevent certain operations (including queue creation and deletion)
blocking until a connection closes when the socket limit is reached
(since 2.7.0)
26227 fix incorrect log message about config file location when running as
a Windows service, changing RABBITMQ_CONFIG_FILE and not reinstalling
the service (since 3.3.0)
26172 ensure slave queue does not hang if the GM process crashes at queue
startup (since 2.6.0)
26178 prevent error logger crash in rare circumstances (since 3.3.0)
26184 prevent small log messages being needlessly truncated (since 3.3.0)
26226 ensure rabbitmqctl status does not crash if invoked while Mnesia is
starting or stopping (since 3.0.0)
26200 fix garbled SSL log messages (since 3.0.3)
26203 prevent spurious log message if slave queue crashes early (since 3.2.2)
management plugin
-----------------
bug fixes
26197 fix garbled error message if importing JSON definitions file with invalid
input (since 2.1.0)
26209 ensure reasons for authentication failure are always logged (since 2.1.0)
enhancements
25376 add documentation on the JSON schema returned by GET queries
shovel plugin
-------------
bug fixes
26219 fix creation of dynamic shovels using direct connection URLs through
rabbitmqctl (since 3.3.1)
26176 prevent deadlock deleting virtual host with active dynamic shovel on
single core machine (since 3.3.0)
federation plugin
-----------------
bug fixes
26176 prevent deadlock deleting virtual host with active federation link on
single core machine (since 3.0.0)
shovel-management plugin
------------------------
bug fixes
26165 ensure the status of static shovels is correctly shown (since 3.3.1)
LDAP plugin
-----------
bug fixes
26190 fix crash when LDAP uses SSL and nothing else does (since 2.3.0)
auth-mechanism-ssl plugin
-------------------------
bug fixes
25550 allow use of both certificate and password based authentication at the
same time (since 2.3.0)
MQTT plugin
-----------
bug fixes
26194 prevent hang on broker shutdown when there are active MQTT connections
(since 3.0.0)
26189 fix connection crash on shutdown if the connection starts very early
(since 3.0.0)
STOMP plugin
------------
bug fixes
25550 allow use of both certificate and password based authentication at the
same time (since 2.3.0)
Java client
-----------
bug fixes
26187 ensure network recovery delay is used when recovering from all types of
exception (since 3.3.0)
26188 ensure TopologyRecoveryException includes cause's message (since 3.3.0)
26196 fix Javadoc for ConnectionFactory.setSocketConfigurator()
Erlang client
-------------
bug fixes
26160 declare xmerl application dependency (since 3.3.0)
Bugfixes in 3.2.4
=================
server
------
bug fixes
26014 prevent 541 internal error removing a nonexistent binding from a topic
exchange (since 3.2.0)
25762 fix failure to delete virtual host if a queue in the virtual host is
deleted concurrently (since 1.0.0)
26013 ensure connection.blocked is sent in all circumstances it should be
(since 3.2.0)
26006, 26038 ensure autoheal does not hang if a node is manually stopped
during autoheal (since 3.1.0)
26000 prevent crash of mirrored supervisor in some circumstances after a
network partition is healed (since 2.6.0)
25972 fix syntax error in example configuration file (since 3.2.0)
management plugin
-----------------
bug fixes
24476 prevent statistics database from vanishing after a network partition is
healed (since 2.8.3)
25983 prevent "node statistics not available" error when mochiweb is
configured with an explicit list of SSL ciphers (since 2.6.0)
federation plugin
-----------------
bug fixes
25998 ensure upstreams which are timing out establishing network connections
can be deleted in a timely fashion (since 3.0.0)
shovel plugin
-------------
bug fixes
25996 ensure shovels which are timing out establishing network connections
do not block broker shutdown (since 2.3.0)
STOMP plugin
------------
bug fixes
26028 prevent potential deadlocks during shutdown (since 2.3.0)
MQTT plugin
-----------
bug fixes
25982 ensure messages published with QOS=1 are persistent (since 3.1.0)
Erlang client
-------------
bug fixes
26041 prevent rare, fake "541 internal error" reported client-side when
shutting down connections (since 2.1.1)
.NET client
-----------
bug fixes
26016 ensure SSL connection establishment times out if necessary (since 1.0.0)
26047 ensure IModel.ConfirmSelect() is idempotent (since 2.3.0)
Bugfixes in 3.2.3
=================
server
------
bug fixes
25936 stem leak when queues with active consumers terminate (since 3.2.0)
25928 fix cosmetic error when sending connection.close-ok after client
already closed the connection (since 1.0.0)
25965 limit messages to ~2GB to prevent "Absurdly large distribution output
data buffer" VM crash (since 1.0.0)
24927 avoid broker being overwhelmed while logging benign messages starting with
"Discarding messages" (since 1.0.0)
25952 prevent "Absurdly large distribution output data buffer" VM crash when
sending many/large messages to a mirrored queue (since 2.6.0)
25925 remove extraneous service parameters when installing on windows
(since 1.5.0)
25929 prevent error being logged when connection is closed while it is still
being opened (since 1.0.0)
federation plugin
-----------------
bug fixes
25945 ensure federated queues correctly stop federating messages when channels
close or crash without cancellation from consumers (since 3.2.0)
25971 prevent crash of federated mirrored queues on deletion (since 3.2.0)
25956 prevent federation of the queues used internally by federated exchanges
(since 3.2.0)
25949 prevent unnecessary CPU use when ACKs are not in use (since 2.6.0)
shovel plugin
-----------------
bug fixes
25934 remove ordering constraint on configuration items (since 2.0.0)
25949 prevent unnecessary CPU use when ACKs are not in use (since 2.0.0)
LDAP plugin
-----------
bug fixes
25914 fix use of dn_lookup_attribute configuration on OpenLDAP (since 2.8.0)
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
3.2.2
This release fixes a number of bugs in the broker (including High Availability
mode) and plugins (LDAP, Management and MQTT).
3.2.1
This fixes a number of bugs in 3.2.0 and earlier versions.
3.2.0
This release introduces federated queues and features enhanced policies for
aspects of the broker which previously required AMQP arguments. Clients can
now obtain better feedback about authentication failures and broker alarm
conditions.
This release corrects a number of defects in the broker and plugins.
=============================================
Release Highlights
==================
server
------
bug fixes
25713 fix crash in the delegate mechanism leading to various crashes, and
intra-cluster incompatibility between RabbitMQ 3.1.4 and other members
of the 3.1.x series (since 3.1.4)
25700 25710 prevent (harmless) errors being logged when pausing in
pause_minority mode (since 3.1.0)
LDAP plugin
-----------
bug fixes
25703 prevent channel crash when attempting to retrieve LDAP attribute that
does not exist (since 2.7.0)
Changes in 3.1.4
=============================================
Security Fixes
==============
server
------
25686 ensure DLX declaration checks for publish permission (since 2.8.0)
management plugin
-----------------
24803 update to a later version of Mochiweb that fixes a directory traversal
vulnerability allowing arbitrary file access on Windows (since 2.1.0)
Release Highlights
==================
server
------
bug fixes
25638 fix resource leak with mirrored queues when whole clusters stop
(since 3.0.0)
25624 fix queue crash in mirrored queue handling of messages during promotion
(since 2.6.0)
25615 25670 fix race conditions in mirrored queues when different cluster
nodes start and stop near-simultaneously (since 2.6.0)
25617 fix corrupt_cluster_status_files error after abrupt node shutdown
(since 3.0.0)
25645 fix mirrored queue sync failure in the presence of un-acked messages
not at the head of the queue (since 3.1.0)
25640 fix race condition leading to channel crash with low prefetch count
repeated basic.consume and basic.cancel (since 3.1.0)
25625 fix memory leak of mirrored queue messages during promotion
(since 2.6.0)
25649 allow hipe compilation on Erlang R16B01
25659 allow offline cluster node removal with a node which is not second
from last (since 3.0.0)
25648 make `rabbitmqctl join_cluster' idempotent (since 3.0.0)
25651 improve `rabbitmqctl cluster_status' handling of partition info when
cluster nodes are in the process of stopping (since 3.1.0)
25689 ensure launch of subprocesses to monitor disk space and file handles
works correctly when clink shell is installed on Windows (since 2.1.0)
25594 fix rabbit_error_logger crash during failed startup (since 1.4.0)
25631 fix bug in shutdown sequence that could lead to spurious
INTERNAL_ERRORs being sent to clients (since 3.1.0)
erlang client
-------------
bug fixes
25632 fix broken error handling in amqp_network_connection that could lead
to a crash during broker shutdown (since 2.4.0)
25688 fix bug in challenge-response auth handling (since 2.3.0)
enhancements
25674 add amqp_rpc_{client,server}:start_link()
STOMP plugin
------------
bug fixes
25691 fix connection crash on consumer cancellation notification (since 3.0.0)
build and packaging
-------------------
bug fixes
25668 add ssl support to OS X standalone package
25584 ensure that VERSION is set correctly when building src packages
(since 2.7.0)
Bugs fixed in 3.1.3
==================================
management plugin
------------------
25643 fix bug that lead to incorrect reporting of accumulated
stats (since 3.1.2)
Bugs fixed in 3.1.2:
==================================
server
------
25636 fix startup failure when using SSL with Erlang/OTP R16B01
25571 fix potential deadlock in application shutdown handling (since 2.1.0)
25567 fix queue crash requeuing in-memory messages (since 2.7.0)
25599 fix queue record leak of exclusive durable queues after forceful
shutdown (since 3.0.1)
25576 fix bug in queue index where a broker crash between segment
deletion and journal truncation could prevent the broker from
subsequently starting (since 2.0.0)
25615 fix duplicate mirror queue slaves starting on a single node (since 2.6.0)
25588 ensure per-message-TTL is removed when messages are dead-lettered
(since 3.0.0)
25575 fix bug handling empty rabbit_serial leading to startup failure
(since 1.7.0)
25640 fix channel crash with a race between basic.ack and basic.cancel
when prefetch >= 1 (since 3.1.0)
25638 fix leak affecting HA/mirrored queues (since 3.0.0)
25611 improve stack traces when message store crash occurs
25612 fix crashing processes when stopping node as part of a cluster
(since 2.4.0)
stomp plugin
-------------
25564 fix handling of reply-to for non-temporary queue destinations
(since 3.1.0)
25566 allow unescaped colons in header values for STOMP 1.0 compatibility
management plugin
-----------------
25592 fix bug allowing unprivileged users to see stats for all vhosts
(since 3.1.0)
25600 fix consumer record leak in the management database (since 2.2.0)
25629 fix memory leak in the presence of long-lived channels and
short-lived queues (since 3.1.0)
25580 fix bug preventing definitions file from loading if it contained
a policy from a non default vhost (since 3.1.1)
LDAP plugin
-----------
25573 fix garbled login failure errors (since 2.3.0)
Java client
-----------
25633 fix quoting and escaping in json parser, avoid a potentially
non-terminating loop and improve error handling (since 2.8.2)
(thanks to Bradley Peabody)
Erlang client
-------------
25521 fix negotiated frame-max handling, which was being ignored (since 2.0.0)
25489 fix rpc client/server to ensure correlation-ids are valid UTF-8 strings
(since 2.0.0) (thanks to Daniel White)
Notable changes:
- eager synchronisation of mirror queue slaves;
- automatic cluster partition healing;
- improved statistics (including charts) in the management plugin;
- many smaller new features, bug fixes and performance improvements.
See release notes for full changelog:
http://www.rabbitmq.com/release-notes/README-3.1.0.txt
Major changes in 3.0.0:
- Policy-based configuration of mirroring and federation
- Revamped clustering commands
- Web-STOMP and MQTT plug-ins
- Per-message TTL
Too many bugfixes since 2.8.2, please see individual changelogs:
http://www.rabbitmq.com/changelog.html
Fixes in 2.8.2:
- Performance improvements
- Disc space monitoring
Fixed in 2.8.1
- Fixes a bug in 2.8.0 which prevented RAM nodes from being upgraded.
Various pkgsrc fixes:
- Fix mangled PLIST from the previous commit.
- Depend on coreutils for readlink, which is used in rabbitmq-env.
- Depend on bash, which is assumed throughout the scripts.
- Make sure the shell is passed properly to make/install targets.
- Fix Python usage (add Python 2.7) and clean up other bits.
RabbitMQ changelog:
2.6.1 bug fixes
- The broker failed to (re)start on reboot on systems that keep
/var/run on a temporary file systems, e.g. Ubuntu.
- The Windows service failed to increase the Erlang process limit,
limiting the broker to a few thousand queues, connections and
channels.
2.6.0 bug fixes
- Upgrading from RabbitMQ 2.1.1 to any later release could break if
there were durable queues with persistent messages present.
- On very slow machines, starting rabbit via the supplied init scripts
could fail with a timeout.
- Rabbit could fail to stop (when asked to do so) in the presence of
some plug-ins (e.g. shovel).
- 'ram' nodes in a cluster could consume ever increasing amounts of
disk space.
- The presence of fast consumers on a queue could significantly delay
the addition of new consumers.
- When a client was issuing a tx.commit in one channel, and
simultaneously, in another channel, deleted a durable queue with
persistent messages involved in that tx, rabbit could terminate with
an error.
- When a client was using both basic.qos and channel.flow, the latter
would fail to re-enable message flow.
- When using 'confirm' mode, the deletion of queues could cause nacks
to be issued (incorrectly).
- In extremely rare circumstances (never observed in the wild), a
queue with a per-queue message ttl could break during sudden changes
in rabbit memory usage.
2.6.0 enhancements
- Introduce active-active HA, with queues getting mirrored on nodes in
a cluster. See http://www.rabbitmq.com/ha.html.
- Revamp the handling of AMQP's tx (transaction) class and clarify its
behaviour See http://www.rabbitmq.com/specification.html#tx.
- Replace the 'administrator' flag, as used by the management plugin,
with a more general 'user tags' mechanism. See
http://www.rabbitmq.com/man/rabbitmqctl.1.man.html#set_user_tags.
- Do not require 'configure' permissions for passive queue/exchange
declaration.
- Optimise of message delivery on channels with a basic.qos
prefetch limit that are consuming from many queues.
- In 'rabbitmqctl list_channels', do not show the tx mode by default.
- When a cluster 'degrades' to only containing ram nodes - through
'rabbitmqctl' actions or node failure - display/log a warning.
- Eliminate some spurious errors from the sasl log.
---
Release messages:
The RabbitMQ team is pleased to announce the release of RabbitMQ 2.1.1.
This release fixes a number of bugs and introduces some enhancements,
including exchange to exchange bindings and some performance improvements,
in the server and clients.
The RabbitMQ team is pleased to announce the release of RabbitMQ 2.2.0.
This release fixes a number of bugs and introduces some enhancements,
including automatic upgrades of non-clustered brokers, per-queue message
TTLs and significantly reduced memory usage for pending acknowledgements.
Perfectly timed one day before the start of the year of the Rabbit,
the RabbitMQ team is pleased to announce the release of RabbitMQ 2.3.0.
This release fixes a number of bugs and introduces some enhancements,
including streaming publish confirmations, new plugin mechanisms for
authentication and authorisation, and a great deal more.
The RabbitMQ team is pleased to announce the release of RabbitMQ 2.3.1.
This release fixes a small number of bugs, in particular one serious bug
in 2.3.0 which could lead to queue processes crashing.
The RabbitMQ team is delighted to announce the release of RabbitMQ 2.4.0.
This release fixes a number of bugs and introduces some enhancements,
including fast routing for topic exchanges, sender-selected distribution
and server-side consumer cancellation notifications.
The RabbitMQ team is delighted to announce the release of RabbitMQ 2.4.1.
This release fixes a number of bugs, in particular one bug in 2.4.0 that
would break upgrades if durable queues were present. A notable enhancement
included in this release are cluster upgrades.
The RabbitMQ team is delighted to announce the release of RabbitMQ 2.5.0.
This release fixes a number of bugs. In particular:
recovery has been simplified, improving startup times when many exchanges
or bindings exist
bindings are recovered between durable queues and non-durable exchanges
on restart of individual cluster nodes
better performance under high load and memory pressure
source compatibility with the new Erlang R14B03 release
New features include:
tracing facility for debugging incoming and outgoing messages, (see firehose)
improved inbound network performance
improved routing performance
new rabbitmqctl commands ('report', 'environment', and 'cluster_status')
The RabbitMQ team is pleased to announce the release of RabbitMQ 2.5.1.
This release correctly upgrades from RabbitMQ 2.1.1 and 2.2.0.
There are no other changes compared with 2.5.0.
RabbitMQ is a complete and highly reliable Enterprise Messaging
system. The RabbitMQ client libraries and broker daemon can be used
together to create an AMQP network, or used individually to bring
the benefits of RabbitMQ to established networks.
(Based on wip/rabbitmq.)