[rabbitmq-discuss] weird timeout declaring queue

Matthew Sackman matthew at rabbitmq.com
Wed Jan 26 23:20:16 GMT 2011


On Wed, Jan 26, 2011 at 01:16:10PM -0600, Jon Brisbin wrote:
> In testing the new Riak-based message persister I've been working on, I'm seeing a strange timeout happening that I'm not terribly sure how to troubleshoot.
> 
> When I start the broker and publish a message, everything goes through fine. I see all the functions being called like I'd expect (init, fetch, et al). When I re-run the Python script that publishes the test message, it appears to hang on the declare_queue step. I have to kill it with Ctl-C. The only function I see being called in my backing queue module is delete_and_terminate. I suspect I'm not returning something correctly but I'm not sure what that is.

I strongly suspect your delete_and_terminate function is crashing, which
can then cause a subsequent declare of the same queue to loop forever.
Because this is called as part of the queue's deletion/termination,
errors in here tend not to show up in the logs. This is something of a
problem! So, maybe very carefully debug your delete_and_terminate
function? Construct the state directly in the erlang shell and pass it
around? We have lots of tests (as you'll find in rabbit_tests) that
directly construct vq states and mutilate them for testing purposes -
I'd suggest doing the same - get your BQ state out of the queue process
and test it in isolation.

Matthew



More information about the rabbitmq-discuss mailing list