[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