qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rafael Schloming <rafa...@redhat.com>
Subject Re: [python-qpid] Blocking on dead sockets
Date Fri, 03 Dec 2010 22:01:23 GMT
On 12/03/2010 01:34 PM, Andrew Stitcher wrote:
> On Wed, 2010-12-01 at 15:18 +0300, Dmitry Konishchev wrote:
>> Hi! I use python-qpid and I have faced with a few bugs in it:
>>
>> * If you open a few connections, and one of them breaks (for example,
>>    due to a network error), another connections can be locked for time, which is
>>    equal to network timeout of the broken connection. This happens due to
>>    working with sockets in blocking mode and due to using one Selector for all
>>    connections.
>> * All connections could become locked forever due to races between
>>    Driver and Selector objects. Driver object removes itself from the Selector
>>    non-atomically and a situation when Driver is alredy closed, but the Selector
>>    refers to it could happen. In this case select() call in the Selector raise
>>    an exeption due to self._transport.fileno() call on Driver where
>>    self._transport is None. The selector doesn't handle errors on select(), so
>>    the selector's thread will be stopped due to unhandled Exception.
>> * There is no checks on EINTR error on os.* calls.
>>
>> As a temporary solution for me, I've written a patch, which fixes the errors:
>> https://github.com/KonishchevDmitry/qpid/commit/9090f7f32f5746d00de6fc378ac4b2f4fa75b856
>>
>> It would be good if you'd include this patch to a new version of Qpid.
>
> IANAL but I believe that before we could accept this patch into qpid
> either:
>
> * You need to sign a contributors agreement
>
> OR (much easier)
>
> * You open a ticket with our Jira bug tracker
> https://issues.apache.org/jira and attach the patch there ticking the
> "Grant License to ASF ..." box.
>
> Sorry to make this more complicated than it might seem it should be.

Good point. I forgot about the legal red tape.

--Rafael

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Mime
View raw message