I have an issue with QueueDeclare locking up on me. It works fine for the most part, but eventually, it locks up (no error, just doesn't return). I have tried to find out where it happens and this is the spot:<br><br>When running:<br><br>channel.QueueDeclare()<br><br>RabbitMQ enters an idle state at the line marked below:<br><br>namespace RabbitMQ.Client.Impl<br>{<br>&nbsp;&nbsp;&nbsp; public class SimpleBlockingRpcContinuation : IRpcContinuation<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public virtual Command GetReply()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>====&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Either result = (Either)m_cell.Value;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; switch (result.Alternative)<br>...<br><br>Now, I call QueueDeclare() from a callback created like this (I receive a message from AMQP and create/bind to a new queue):<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string subscribe(string routingKey, BasicDeliverEventHandler e )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lock (channel)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string queueName = channel.QueueDeclare();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EventingBasicConsumer consumer = new EventingBasicConsumer();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; consumer.Received += e;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string consumerTag = channel.BasicConsume(queueName, true, consumer); // true; noAck<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; channel.QueueBind(queueName, ExchangeName, routingKey);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return queueName;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>Is it not allowed to create/bind to a new queue when being called from this callback? Can I avoid the lockup somehow?<br><br>I use 'lock' to avoid triggering the non-multithread safe .NET implementation. Could this be an issue here?<br><br>Any hints would be nice here.<br>