[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
test.

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
connection.

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.

cheers,
Aaron

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


More information about the rabbitmq-discuss mailing list