<div dir="ltr">Thanks for the informative response; I appreciate the insight.<div><br></div><div>Dave</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 3, 2013 at 12:19 PM, Tim Watson <span dir="ltr">&lt;<a href="mailto:tim@rabbitmq.com" target="_blank">tim@rabbitmq.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 3 May 2013, at 16:53, Dave Goldstein wrote:<br>
<br>
&gt; So if the call blocks indefinitely without erroring out, what does that suggest<br>
&gt;<br>
<br>
</div>The usual suspect is a network connectivity problem, either due to an interruption in service, broker failure/crash/restart or intermediate network kit (such as firewalls). A typical TCP/IP stack can take quite a long time to &quot;notice&quot; the peer socket has &quot;disappeared&quot;, while the client is sat waiting for a reply.<br>

<div class="im"><br>
&gt; and is there any way for me to recover from this beyond detecting and killing the thread?<br>
<br>
</div>Unfortunately there aren&#39;t any silver bullet solutions to this kind of problem. Detecting an idle worker (based on whatever your definition of &quot;idle&quot; happens to be) and killing it is certinaly the must common approach. Bear in mind that the OS networking stack is already trying to &#39;detect&#39; the problem, and it&#39;s unlikely you&#39;ll be able to improve on what it is doing.<br>

<br>
It might help if you enable AMQP heartbeats in your client, which would at least detect an unresponsive network connection in a timely fashion. These will do the job of killing the connection and any channels for you, so at least you don&#39;t have to home bake a solution based on killing threads. The other thing that might help is to consider turning on TCP keep-alives in your OS networking configuration. These perform a similar function, but at a much lower level, however they come with overheads and caveats that they might affect your application (and/or other network interactions taking place on the machine) in a wide variety of ways.<br>

<div class="im"><br>
&gt; BTW, I was running client 3.0.1 and have just moved to 3.0.4 to see if the behavior changes.<br>
&gt;<br>
<br>
</div>This won&#39;t have changed between releases, if I&#39;ve diagnosed it correctly at least.<br>
<div class="HOEnZb"><div class="h5"><br>
Cheers,<br>
Tim<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</div></div></blockquote></div><br></div>