[rabbitmq-discuss] .NET client hangs on BasicGet

Peter Townsend Peter.Townsend at mflow.com
Wed Jan 13 19:07:52 GMT 2010


Hi Matthias,

I have the stack trace of the hanging Model.BasicGet call

14	Worker Thread	<No Name DigitalDistribution.RabbitMQ.RabbitMessageQueue<DigitalDistribution.ContentIngest.ServiceModel.V100.Messages.SupplierReleaseUpdate>.GetNormal
[In a sleep, wait, or join]	 
mscorlib.dll!System.Threading.Monitor.Wait(object obj, int millisecondsTimeout, bool exitContext) + 0x18 bytes	 
mscorlib.dll!System.Threading.Monitor.Wait(object obj) + 0xa bytes	 
RabbitMQ.Client.dll!RabbitMQ.Util.BlockingCell.Value.get() + 0x52 bytes	 
RabbitMQ.Client.dll!RabbitMQ.Client.Impl.SimpleBlockingRpcContinuation.GetReply() + 0x2e bytes	 
RabbitMQ.Client.dll!RabbitMQ.Client.Impl.ModelBase.BasicGet(string queue = "001.load.release.update", bool noAck = false) + 0x82 bytes	 
DigitalDistribution.RabbitMQ.dll!DigitalDistribution.RabbitMQ.RabbitMessageQueue<DigitalDistribution.ContentIngest.ServiceModel.V100.Messages.SupplierReleaseUpdate>.Get() Line 121 + 0x24 bytes	 
DigitalDistribution.ContentIngest.dll!DigitalDistribution.ContentIngest.Messaging.AbstractMessageConsumer<DigitalDistribution.ContentIngest.ServiceModel.V100.Messages.SupplierReleaseUpdate>.ReadNextMessage() Line 155 + 0x53 bytes	 
DigitalDistribution.ContentIngest.dll!DigitalDistribution.ContentIngest.Messaging.AbstractMessageConsumer<DigitalDistribution.ContentIngest.ServiceModel.V100.Messages.SupplierReleaseUpdate>.ProcessMessageLoop() Line 107 + 0x8 bytes	 
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x66 bytes	 
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6f bytes	 
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes	

@Jeremy

The number is inconsistent when continuing the process but I have just seen it I load an empty queue with the same messages that it is hanging after the same set of messages every time. The message data I'm using is binary serialized XML, could this be perhaps a message content/size restriction? I'll look into getting the message content and size for the message prior to hanging and the one expected next.

Note when I restart the consumer it will happily process the next message. Would it be possible that a corrupt message is blocking and the server re-queues it (I assume its appends it to the end of the queue) thus the restarted consumer skips it?

Thanks for the prompt reply guys
Pete

-----Original Message-----
From: Matthias Radestock [mailto:matthias at lshift.net] 
Sent: 13 January 2010 18:02
To: Peter Townsend
Cc: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] .NET client hangs on BasicGet

Peter,

Peter Townsend wrote:
> I'm using the .NET client running against a windows installation of the 
> RabbitMQ broker. I have found that calls to IModel.BasicGet(...) will 
> hang after process a number of message. The number of messages processed 
> before it hangs changes with each run.

When it hangs, please take a thread dump and post it here.

> I refactored to use a BasicConsume approach

It will probably be easier to debug this by sticking to BasicGet.


Regards,

Matthias.




More information about the rabbitmq-discuss mailing list