Author: astitcher
Date: Tue Nov 13 22:11:44 2012
New Revision: 1408983

URL: http://svn.apache.org/viewvc?rev=1408983&view=rev
Log:
QPID-4435: Reconnect on connect failure hangs at third address to try
- In the case of retrying a connection failure the epoll code mistakenly
  thinks the connection has just been disconnected and therefore should
  never be seen again.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp?rev=1408983&r1=1408982&r2=1408983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/epoll/EpollPoller.cpp Tue Nov 13 22:11:44 
2012
@@ -384,6 +384,7 @@ void PollerPrivate::resetMode(PollerHand
         int rc = ::epoll_ctl(epollFd, EPOLL_CTL_MOD, eh.fd(), &epe);
         // If something has closed the fd in the meantime try adding it back
         if (rc ==-1 && errno == ENOENT) {
+            eh.setIdle(); // Reset our handle as if starting from scratch
             rc = ::epoll_ctl(epollFd, EPOLL_CTL_ADD, eh.fd(), &epe);
         }
         QPID_POSIX_CHECK(rc);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to