From 8ac0bd28f616d04c517653c79e6fdab74712fe61 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Mon, 20 Aug 2018 04:49:21 +0500 Subject: fixes #653 Weird connect failures in dialer (multistress) (#660) The POLLHUP (or rather EPOLLHUP) flag does not quite mean the same thing in Linux, and we've seen random failures where we will sometimes get this event on a socket that is freshly connected. This might be a bug in Linux, but it is easy enough to workaround -- we just don't watch for it at all. --- src/platform/posix/posix_pollq_epoll.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/platform/posix/posix_pollq_epoll.c b/src/platform/posix/posix_pollq_epoll.c index e4f9ddb6..92c03120 100644 --- a/src/platform/posix/posix_pollq_epoll.c +++ b/src/platform/posix/posix_pollq_epoll.c @@ -35,7 +35,7 @@ typedef struct nni_posix_pollq nni_posix_pollq; #define NNI_MAX_EPOLL_EVENTS 64 // flags we always want enabled as long as at least one event is active -#define NNI_EPOLL_FLAGS (EPOLLONESHOT | EPOLLERR | EPOLLHUP) +#define NNI_EPOLL_FLAGS (EPOLLONESHOT | EPOLLERR) // Locking strategy: // @@ -271,7 +271,7 @@ nni_posix_poll_thr(void *arg) int events; events = ev->events & - (EPOLLIN | EPOLLOUT | EPOLLERR | EPOLLHUP); + (EPOLLIN | EPOLLOUT | EPOLLERR); nni_mtx_lock(&pfd->mtx); pfd->events &= ~events; -- cgit v1.2.3-70-g09d2