[ https://issues.apache.org/jira/browse/QPID-2968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966678#action_12966678 ]
Dmitry Konishchev edited comment on QPID-2968 at 12/3/10 4:43 PM: ------------------------------------------------------------------ This patch fixes following bugs: * If you open a few connections, and one of them breaks (for example, due to a network error), another connections can be locked for a time, which is equal to network timeout of the broken connection. * All connections could become locked forever due to races between Driver and Selector objects. * Added EINTR error handling. * Added broker connection timeout which is equal to the connection heartbeat interval. was (Author: konishchev): The following patch fixes the bugs. > Blocking on dead sockets > ------------------------ > > Key: QPID-2968 > URL: https://issues.apache.org/jira/browse/QPID-2968 > Project: Qpid > Issue Type: Bug > Components: Python Client > Affects Versions: Future, 0.9, 0.8, 0.7 > Environment: Does not matter > Reporter: Dmitry Konishchev > Fix For: Future, 0.9, 0.8, 0.7 > > Attachments: patch > > > * 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:dev-subscr...@qpid.apache.org