Repository navigation
3.2.0 #743
michaelklishin
announced in
Maintainer announcements
3.2.0
#743
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Changes between Bunny 3.1.0 and 3.2.0 (Aug 19, 2026)
Modernization for Ruby 3.x
Contributed by @eglitobias.
GitHub issue: #735
amq-protocolBump to2.8.0This version optimizes deserialization of a few frame types,
most benefitting applications that primarily consume messages.
Bug Fixes
Connection Recovery Survives connection.close During Negotiation and Repeated Failures Mid-Recovery
Overlapping (concurrent) connection recovery attempts could leave a client
permanently disconnected, in particular when target node was put into maintenance mode
which closes all client connections before the node is restarted.
Several changes address this scenario:
:openand the heartbeat sender is startedonly after
connection.open-okis actually receivedconnection.closereceived during negotiation with automatic recoveryenabled is now raised in the recovery thread and handled by the recovery
retry logic, instead of being delivered to the session error handler
(by maintenance mode) protocol listener would not cause client connections
to linger waiting for a socket event that will never arrive
In addition, a failure to redeclare a single entity during topology recovery no
longer aborts the entire recovery process and will catch transport timeout
exceptions.
Reader Loop No Longer Crashes on a Frameset for an Already Closed Channel
Session#handle_framesetnow guards against a missing channel likeSession#handle_framealready did.GitHub issue: #741
Bunny::ConsumerIdentity Preserved on RecoveryConsumers registered via
Queue#subscribe_withorChannel#basic_consume_withare no longer replaced with a freshly constructed
Bunny::Consumerduringautomatic connection recovery.
The original instance is restored, so callbacks such as
on_cancellationdefinedbefore recovery continue to function.
Contributed by @jollopre.
GitHub issue: #737
This discussion was created from the release 3.2.0.
All reactions