[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