Ruby RabbitMQ clients blog

News and updates about various Ruby clients for RabbitMQ

Bunny 0.9.7 Is Released


Bunny 0.9.7 is released to

This is a bug fix release that is completely backwards compatible with 0.9.0.

We encourage all Bunny users to upgrade to it.

Changes between Bunny 0.9.6 and 0.9.7

Reentrant Mutex Implementation

Bunny now allows mutex impl to be configurable, uses reentrant Monitor by default.

Non-reentrant mutexes is a major PITA and may affect code that uses Bunny.

Avg. publishing throughput with Monitor drops slightly from 5.73 Khz to 5.49 Khz (about 4% decrease), which is reasonable for Bunny.

Apps that need these 4% can configure what mutex implementation is used on per-connection basis.

Changes between Bunny 0.9.5 and 0.9.6

Eliminated Race Condition in Bunny::Session#close

Bunny::Session#close had a race condition that caused (non-deterministic) exceptions when connection transport was closed before connection reader loop was guaranteed to have stopped.

Changes between Bunny 0.9.4 and 0.9.5

connection.close Raises Exceptions on Connection Thread

Connection-level exceptions (including when a connection is closed via management UI or rabbitmqctl) will now be raised on the connection thread so they

  • can be handled by applications
  • do not start connection recovery, which may be uncalled for

Full change log can be found on GitHub.

Michael on behalf of the Ruby RabbitMQ Clients Team