[rabbitmq-discuss] 2.4.0 channel and connection close behavior

Aaron Westendorf aaron at agoragames.com
Wed Mar 30 19:34:24 BST 2011

I was debugging our new driver (coming soon!) with 2.4.0 and
encountered a change in behavior during the shutdown process of my

The test is a simple stress test, opening N channels with their own
dedicated auto_delete queue and continuously looping messages through
it.  After the first message, each channel publishes a message when it
receives the last published message.

When I hit ctrl-c, the test sends a channel close for all channels
(queued behind a pending publish if there is one), followed by a
connection close frame, then shuts down after receiving close_ok on
the connection. Once close() has been called on a channel, no further
publish calls are made.

In 2.3.0 and prior, I could send the connection close even if there
were pending channel closures, but in 2.4.0, if I send a channel close
followed immediately by a connection close, I stop receiving frames
altogether.  This occurred with one channel (beyond 0) and 500
channels.  I didn't enable heartbeats so perhaps frame processing was
still alive but I simply never received a close_ok on the channel or

I assume that this is a bug but could easily be a stricter
interpretation of the spec.

I'm looking forward to finally turning this code loose on the
community, it's been a long time coming and delayed by all those
things we actually get paid for.  My personal goal is first public
release by the end of April.


Aaron Westendorf
Senior Software Engineer
Agora Games
359 Broadway
Troy, NY 12180
Phone: 518.268.1000
aaron at agoragames.com

More information about the rabbitmq-discuss mailing list