RabbitMQ 3.5.1
Release Highlights
Server
Enhancements
- Introduce a new
channel
log category for channel log messages (#74).
Bug fixes
- Ensure
consumer_closed
events 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-death
message 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 stop
inrabbitmq-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-count
is not 0 (rabbitmq/rabbitmq-amqp1.0#9).
Client library: Java
Enhancements
- Uplift
RecoveryAwareAMQConnection
andRecoveryAwareChannelManager
to useConnectionFactory
's custom threadFactory (rabbitmq/rabbitmq-java-client#33).
Client library: .NET
Enhancements
- Make
IQueueingBasicConsumer
andISubscription
public (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
ConsumerWorkService
uses the scheduler it is constructed with (since 3.5.0, rabbitmq/rabbitmq-dotnet-client#40).
Building and packaging
Enhancements
- Teach
make checkout
to retry if GitHub closes the connection (rabbitmq/rabbitmq-public-umbrella#17). - Add
make sync_gitremote
andmake sync_gituser
targets 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_c
to work with detached HEAD. This allows to checkout a tag again (since 3.5.0, rabbitmq/rabbitmq-public-umbrella#6). - Fix
make status
so it walks through directories correctly (rabbitmq/rabbitmq-public-umbrella#13). - Use
$(MAKE)
instead of a hard-codedmake
inmake 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