Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.5.3
Release Highlights
Server
Enhancements
- If
rabbitmqctlcan't contact a node, suggest to verify any Erlang TLS distribution configuration (#162).
Bug fixes
-
Ensure the memory monitor is fully started before the file handle cache is used (since 3.5.2, #157). Before, the problem could lead to the following crash during RabbitMQ startup:
=CRASH REPORT==== ... === crasher: initial call: gen:init_it/6 pid: <0.229.0> registered_name: [] exception exit: {noproc, {gen_server,call, [vm_memory_monitor,get_memory_limit,infinity]}} in function gen_server2:terminate/3 ...Thanks to Carl Hörberg and Gilles Danycan for the bug report!
Plugin: Management UI
Bug fixes
-
Fix a crash during RabbitMQ startup if
force_fine_statisticsis set inrabbitmq_management_agentconfiguration (since 3.5.2, rabbitmq/rabbitmq-management-agent#4). The error was:BOOT FAILED =========== Error description: {could_not_start,rabbit, {{case_clause,false}, [{rabbit_mgmt_db_handler,ensure_statistics_enabled,0,[]}, ...Thanks to Kevin Blackwell for the bug report!
Documentation
- When the management UI warns about network partitions, add a link to the documentation which gives explanations and possible solutions (rabbitmq/rabbitmq-management#43).
Client library: Java
Bug fixes
- During handshake, await on continuations with a timeout (rabbitmq/rabbitmq-java-client#65). Unfortunately, this change breaks the API. Thanks to @jhalterman for the bug report and testing!
Feature deprecation
-
Deprecate
com.rabbitmq.client.Channelmethods related to the old flow control (rabbitmq/rabbitmq-java-client#59):boolean flowBlocked(); void addFlowListener(FlowListener listener); boolean removeFlowListener(FlowListener listener); void clearFlowListeners();
Documentation
- Revisit
com.rabbitmq.client.Channeldocumentation (rabbitmq/rabbitmq-java-client#60, rabbitmq/rabbitmq-java-client#30, rabbitmq/rabbitmq-java-client#32). - Improve documentation around recovery listeners (rabbitmq/rabbitmq-java-client#35).
Building and packaging
Bug fixes
- When updating Git remote URLs, use
git set-url ...to set the fetch URL, notgit set-url --fetch ...(since 3.5.1).
Upgrading
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:
http://www.rabbitmq.com/clustering.html#upgrading.
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:
http://www.rabbitmq.com/download.html
RabbitMQ 3.5.2
Release Highlights
Server
Enhancements
- 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.
Bug fixes
- 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 usingrabbitmqctl change_password(since 1.5.2, #66).
Plugin: Management UI
Enhancements
- Allow to configure
rates_modeeven if onlyrabbitmq-management-agentis enabled (rabbitmq/rabbitmq-management#33). Thanks to @databus23 for the idea and tests!
Bug fixes
- Fix a
badarithcrash if for some reasons, the disk free space or the file descriptors count are temporarily reported incorrectly (rabbitmq/rabbitmq-management#30).
Plugin: STOMP
Bug fixes
- 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
Bug fixes
- 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!
Documentation
- 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
Bug fixes
- 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
NullPointerExceptioninMapMessageBuilder.GetContentBody()(since 3.5.0, rabbitmq/rabbitmq-dotnet-client#53). Thanks to @BrentSouza for the report!
Client library: Erlang
Enhancements
- 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
Enhancements
- Upgrade Mac OS X standalone package to Erlang/OTP 17.5 (#97).
Bug fixes
- 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! - Ensure
rabbit_misc:otp_release/0returns an appropriate value when using the Mac OS X standalone package (#106). - Ignore
$RABBITMQ_PID_FILEset in/etc/rabbitmq/rabbitmq-env.confas it would break the init script (#127). - Ensure
$RABBITMQ_PID_FILEis not used before being set in the Debian init script (since 2.8.2, #126). - Use
$(MAKE)instead of hard-codingmakein the MQTT (rabbitmq/rabbitmq-mqtt#23) and STOMP (rabbitmq/rabbitmq-stomp#9) plugins.
Upgrading
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:
http://www.rabbitmq.com/clustering.html#upgrading.
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:
http://www.rabbitmq.com/download.html
RabbitMQ 3.5.1
Release Highlights
Server
Enhancements
- Introduce a new
channellog category for channel log messages (#74).
Bug fixes
- Ensure
consumer_closedevents are emitted for the actually closed channels only, not all of them (since 3.3.0, #86). The events were filtered later in the management plugin so the behaviour was correct. However, the broker did way too much work. - Ensure the number of
x-deathmessage headers doesn't grow indefinitely (#78). Now, there is a single entry for each{queue, reason}pair. - Adjust the file read buffer cache size to avoid useless reads (since 3.5.0, #69). Before this fix, reading a file backward would cause the buffer to be filled and thrown away quickly, leading to a large I/O bandwidth consumption.
- Ensure the priority queue plugin reports its memory consumption properly (since 3.5.0, #67). Before this fix, the queue might not be paged out under memory pressure.
- Prevent a crash while synchronising paged out priority queues (since 3.5.0, #65). This was caused by priority queues accessing message properties without checking their existence.
- Pass the PID file to
rabbitmqctl stopinrabbitmq-server.ocf, exactly like Debian- and Red Hat-flavour init scripts (since 2.6.0, #72).
Plugin: AMQP 1.0
Bug fixes
- Fix heartbeats (rabbitmq/rabbitmq-amqp1.0#6).
- Respond with a protocol error if a disposition frame is incorrect (rabbitmq/rabbitmq-amqp1.0#8).
- Fix a crash if the
initial-delivery-countis not 0 (rabbitmq/rabbitmq-amqp1.0#9).
Client library: Java
Enhancements
- Uplift
RecoveryAwareAMQConnectionandRecoveryAwareChannelManagerto useConnectionFactory's custom threadFactory (rabbitmq/rabbitmq-java-client#33).
Client library: .NET
Enhancements
- Make
IQueueingBasicConsumerandISubscriptionpublic (rabbitmq/rabbitmq-dotnet-client#47). - Add a test case to ensure consumers are properly resumed after automatic recovery (rabbitmq/rabbitmq-dotnet-client#50).
Bug fixes
- Ensure no bindings are lost during automatic recovery (since 3.4.0, rabbitmq/rabbitmq-dotnet-client#43).
- Ensure client certificates are not mandatory with SSL connections (rabbitmq/rabbitmq-dotnet-client#46). There was a previous attempt in fixing this but it broke the ability to require specific SSL versions (since 3.5.0, rabbitmq/rabbitmq-dotnet-client#44).
- Ensure
ConsumerWorkServiceuses the scheduler it is constructed with (since 3.5.0, rabbitmq/rabbitmq-dotnet-client#40).
Building and packaging
Enhancements
- Teach
make checkoutto retry if GitHub closes the connection (rabbitmq/rabbitmq-public-umbrella#17). - Add
make sync_gitremoteandmake sync_gitusertargets to synchronize Git remote and user/email accross the umbrella and all its subrepositories (rabbitmq/rabbitmq-public-umbrella#5).
Bug fixes
- Make internal database files private to the group (eg.
rabbitmq) (#68). - Improve
make up_cto work with detached HEAD. This allows to checkout a tag again (since 3.5.0, rabbitmq/rabbitmq-public-umbrella#6). - Fix
make statusso it walks through directories correctly (rabbitmq/rabbitmq-public-umbrella#13). - Use
$(MAKE)instead of a hard-codedmakeinmake plugins-srcdist(rabbitmq/rabbitmq-public-umbrella#18).
Upgrading
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:
http://www.rabbitmq.com/clustering.html#upgrading.
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:
http://www.rabbitmq.com/download.html
RabbitMQ 3.5.0
See release notes.
If you have any questions, please use RabbitMQ mailing list.
RabbitMQ 3.4.4
See release notes.
If you have any questions, please use RabbitMQ mailing list.
RabbitMQ 3.4.3
See release notes at http://www.rabbitmq.com/release-notes/README-3.4.3.txt
RabbitMQ 3.4.2
See release notes at http://www.rabbitmq.com/release-notes/README-3.4.2.txt
RabbitMQ 3.4.1
See release notes at http://www.rabbitmq.com/release-notes/README-3.4.1.txt
RabbitMQ 3.4.0
See release notes at http://www.rabbitmq.com/release-notes/README-3.4.0.txt
RabbitMQ 3.3.5
See release notes at http://www.rabbitmq.com/release-notes/README-3.3.5.txt