qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Stitcher <astitc...@redhat.com>
Subject Re: [python-qpid] Blocking on dead sockets
Date Fri, 03 Dec 2010 18:34:00 GMT
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

* 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.


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

View raw message