- Improve integration with Docker (#113). Problems which were previously worked around in the official Docker image, were fixed in RabbitMQ. In particular:
- 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 (#138).
- Add a check to ensure the Mnesia directory is not shared with the PID file location or the plugin expansion directory (#120). This should help users facing non-working automatic clustering.
- Ensure the file handle cache remains under the memory high watermark when syncing a mirrored queue (since 2.0.0, #134).
- Restore support for messages stored on disk with the previous
x-deathheader format (since 3.5.1, #152).
- Ensure passwords containing
$characters are properly escaped so they are not interpreted by the shell, when a password is changed using
rabbitmqctl change_password(since 1.5.2, #66).
Plugin: Management UI
- Allow to configure
rates_modeeven if only
rabbitmq-management-agentis enabled (rabbitmq/rabbitmq-management#33). Thanks to @databus23 for the idea and tests!
- Fix a
badarithcrash if for some reasons, the disk free space or the file descriptors count are temporarily reported incorrectly (rabbitmq/rabbitmq-management#30).
- Ensure the "processor" thread is terminated at the same time the "reader" thread exits (rabbitmq/rabbitmq-stomp#7). Thanks to @martink2 for the report and tests!
Client library: Java
- Use a timeout to ensure a closing channel does not wait for the server forever (since 1.5.0, rabbitmq/rabbitmq-java-client#46). Thanks to @dpratt for the patch!
- Interrupt the thread when an
InterruptedExceptionsis caught instead of ignoring it (rabbitmq/rabbitmq-java-client#52). Thanks to @vfelberg for the report!
- Ensure the virtual host is correct in the generated URI in
AMQConnection.toString()(since 1.4.0, rabbitmq/rabbitmq-java-client#42). Thanks to @dharrigan for the patch!
- Fix documentation of
Recoverable.addRecoveryListener()(rabbitmq/rabbitmq-java-client#40). Thanks to @xuwei-k for the patch!
- Fix several typos (rabbitmq/rabbitmq-java-client#39). Thanks to @xuwei-k for the patch!
Client library: .NET
- Rework heartbeat handling to fix several timeout issues (rabbitmq/rabbitmq-dotnet-client#68). Thanks to @btecu for the report and tests!
- Ensure timers are destroyed when a connection is closed (since 3.5.0, rabbitmq/rabbitmq-dotnet-client#58). Thanks to @chrhlnd for the report and tests, and @mikebridge and @acquleo for the tests!
- When a channel is closed, ensure consumer dispatch for other channels are not affected (since 3.5.0, rabbitmq/rabbitmq-dotnet-client#63). Thanks to @ferviri for the patch!
- Fix a
MapMessageBuilder.GetContentBody()(since 3.5.0, rabbitmq/rabbitmq-dotnet-client#53). Thanks to @BrentSouza for the report!
Client library: Erlang
- Treat a server shutdown as an expected event and do not report an error (rabbitmq/rabbitmq-erlang-client#11). Thanks to @gotthardp for the patch!
Building and packaging
- Upgrade Mac OS X standalone package to Erlang/OTP 17.5 (#97).
- Fix a problem where Erlang crash dumps (
erl_crash.dump) were created when using the Mac OS X standalone package, even though RabbitMQ was running properly (#96). Thanks to Vitaly Numenta for the report!
rabbit_misc:otp_release/0returns an appropriate value when using the Mac OS X standalone package (#106).
/etc/rabbitmq/rabbitmq-env.confas it would break the init script (#127).
$RABBITMQ_PID_FILEis not used before being set in the Debian init script (since 2.8.2, #126).
$(MAKE)instead of hard-coding
makein the MQTT (rabbitmq/rabbitmq-mqtt#23) and STOMP (rabbitmq/rabbitmq-stomp#9) plugins.
To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
To upgrade a RabbitMQ cluster, follow the instructions at:
Source code archives
Warning: The source code archives provided by GitHub only contain the source of the broker, not the plugins or the client libraries. Please download the archives available from the official download page: