[rabbitmq-discuss] IModel Dispose locks if called during ConnectionShutdown event

Mark Ward ward.mark at gmail.com
Thu Sep 20 19:40:41 BST 2012


I may have found the area of the deadlock.

RabbitMQ.Util.BlockingCell

In the Value get on the Monitor.wait(this);



On Thursday, September 20, 2012 1:32:26 PM UTC-5, Mark Ward wrote:
>
> Hi,
>
> I have a framework that upon receiving an event from the 
> IConnection.ConnectionShutdown event will call dispose for all IModel it 
> has.  What I have found is the IModel.Dispose or IModel.Close will lock up 
> and is blocked if called from the ConnectionShutdown event handler.  I am 
> not sure if this is expected behavior of the IModel to lock up like this. 
>  I understand the closing of the connection will clean up all models and I 
> may look into making my code detect if during a ConnectionShutdown event to 
> not dispose or close the model as the connection will manage this.
>
> Is it expected for IModel dispose/close to lock if called during a 
> ConnectionShutdown event?  If it is expected I assume it will be okay to 
> null the reference to the models on the connection that fired the 
> ConnectionShutdown event and not cause any problems?
>
> -Mark
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120920/29e809af/attachment.htm>


More information about the rabbitmq-discuss mailing list