[rabbitmq-discuss] Intermittent Problem - 2.8.5 java client hangs on declare exchange

m.luchak at smartasking.com m.luchak at smartasking.com
Fri Aug 24 20:54:24 BST 2012


Thanks Maze,
 
We have tracked it down to a wait() while declaring an exchange that never completes...
 
com.rabbitmq.client.impl.AMQChannel

private AMQCommand privateRpc(Method m)
 throws IOException, ShutdownSignalException
 {
 SimpleBlockingRpcContinuation k = new SimpleBlockingRpcContinuation();
 rpc(m, k);
 // At this point, the request method has been sent, and we
 // should wait for the reply to arrive.
 //
 // Calling getReply() on the continuation puts us to sleep
 // until the connection's reader-thread throws the reply over
 // the fence.
 return k.getReply();
 }
 
This k.getReply(); jumps through a number of basically empty methods and eventually terminates with another endless wait() that (only on 3G and intermittently) never fulfills. The exchange gets declared but the return is "lost"..
 
We are looking at modifying the client .jar to call a wait with a timeout... I'll keep you updated


 
-----Original Message-----
From: "Matthias Reik" <matthias.reik at gmail.com>
Sent: Friday, August 24, 2012 11:34am
To: "Discussions about RabbitMQ" <rabbitmq-discuss at lists.rabbitmq.com>
Subject: Re: [rabbitmq-discuss] Intermittent Problem - 2.8.5 java client hangs on declare exchange



We had a similar issue (I think we where running 2.6.1 or so)... the exchange/queue declare did eventually happen (after quite a long time).
The same code run just fine on another computer (so we suspected that it was unrelated to RabbitMQ. After having investigated the issue
 for quite a while it turned out to be due to the IPv6 stack timing out (the routing was set up the wrong way.

Just mentioning it, because it might be a similar issue...

Cheers
Maze


On Fri, Aug 24, 2012 at 4:55 PM, Matthias Radestock <[mailto:matthias at rabbitmq.com] matthias at rabbitmq.com> wrote:
Matthew,


 On 24/08/12 15:44, [mailto:m.luchak at smartasking.com] m.luchak at smartasking.com wrote:
what in theory would happen if the server closed the AMQP
 connection {inet_error,etimedout} and the client was connecting?  In
 theory would this cause the client to hang?
It shouldn't, i.e. the client should see the socket close. etimedout is the kind of error that is indicative of network problems though, and in some cases these can take quite a while to be noticed by the parties. Configuring the clients to enable AMQP heartbeats is one way of addressing that problem.

 Regards,

 Matthias.


 ______________________________ _________________
 rabbitmq-discuss mailing list
[mailto:rabbitmq-discuss at lists.rabbitmq.com] rabbitmq-discuss at lists. rabbitmq.com
[https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss] https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120824/be675829/attachment.htm>


More information about the rabbitmq-discuss mailing list