[rabbitmq-discuss] Fwd: Possible bug in .NET library, with IConnection

Michael Klishin mklishin at gopivotal.com
Fri Aug 2 09:52:52 BST 2013


Adding rabbitmq-discuss back.

> From: Burtsev Aleksey <brokenpipe.coder at gmail.com>
> To: Michael Klishin <mklishin at gopivotal.com>
> 
> Yes. It's not exactly a bug in your .NET client, but it's very weak spot in you code. It is very easy to stumble on this problem. I had to wrap all calls to IModel in if blocks checking CloseReason.

It sounds like a bug to me ;)

> At least you should set closeReason for IModel and inner ISession when IModel.Close() is called. Even better would be to add IsClosing prop to Imodel and check it before sending commands to ISession, this will not break you existing session shutdown command sequence.
> 
> On Wed, Jul 31, 2013 at 9:58 PM, Michael Klishin <mklishin at gopivotal.com> wrote:
>  Burtsev Aleksey:
> 
> > The code inside ModelBase.BasicGet doesn't Enqueue BasicGetRpcContinuation because m_closeReason  is not null
> > but send this command to server using _Private_BasicGet(), this method checks ModelBase.m_sessions.m_closeReason which is not null, and then when server reply is received command handler for BasicGetEmpty tries to dequeue (calls Next()) item from m_continuationQueue in which BasicGetRpcContinuation  wasn't put.
> 
> So in order to reproduce the problem one has to use basic.get on a closed channel?
> --
> MK

--
MK

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130802/a8796c6b/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20130802/a8796c6b/attachment.pgp>


More information about the rabbitmq-discuss mailing list