[rabbitmq-discuss] rabbitmq recovery, channelflow, and clients

Tyler Williams tyler at echonest.com
Sat May 22 14:21:32 BST 2010


Hello,

I've been playing with the 21673 branch of rabbitmq, and I have a few questions. 

How does rabbitmq handle bumping up against ulimit -n?

After overwhelming rabbitmq with what I think is a misbehaving client, and then restarting it, rabbitmq recovers some of my queues, and none of the messages that were in them. Is this the expected behavior? I see messages like this in rabbit.log for the unrecovered queues:

=ERROR REPORT==== 21-May-2010::20:11:07 ===
** Generic server <0.981.0> terminating 
** Last message in was {init,true}
** When Server state == {q,{amqqueue,{resource,<<"/">>,queue,<<"queue-23">>},
                                     true,false,[],<0.981.0>},
                           none,none,false,rabbit_variable_queue,undefined,
                           {[],[]},
                           {[],[]},
                           undefined,undefined}
** Reason for termination == 
** {{badmatch,{error,emfile}},
    [{filename,absname,1},
     {file_handle_cache,open,3},
     {rabbit_queue_index,get_segment_handle,1},
     {rabbit_queue_index,load_segment,2},
     {rabbit_queue_index,recover_segment,3},
     {rabbit_queue_index,'-init_dirty/3-fun-0-',5},
     {lists,foldl,3},
     {rabbit_queue_index,init_dirty,3}]}


With respect to ChannelFlow, when rabbit gets a high mem watermark event and sends out the channelflow command to producers, will it disconnect producers who don't honor this?

I've been playing with both pika and amqplib clients. With pika, I see the watermark get set, the flow exception thrown in my producer, and then eventually the watermark gets cleared. With amqplib I see the watermark set but never cleared. I see what looks like some support for flow in amqplib, but I can't tell how it's being used.

Any help you can give me is appreciated!

Thanks,

--tyler


More information about the rabbitmq-discuss mailing list