[rabbitmq-discuss] weird timeout declaring queue

John DeTreville jdetreville at vmware.com
Thu Jan 27 03:28:43 GMT 2011


Jerry and I spoke with Jon today, and we agreed that this is a hard area to work in. I'm sending him a few very simple, special-purpose new queue implementation of mine (rabbit_ram_queue, rabbit_mnesia_queue, and the upcoming rabbit_disk_queue) to try building on. This might be easier for the moment than building on the more complicated rabbit_variable_queue, as Jon is doing now. 

(Golly, it's hard to type underscores on an iPhone!)

Oh, and today is my younger son's birthday. Everyone please wish him Happy Birthday, and I'll pass your wishes along!

Cheers,
John


On Jan 26, 2011, at 15:20, "Matthew Sackman" <matthew at rabbitmq.com> wrote:

> 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
> 
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


More information about the rabbitmq-discuss mailing list