You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is possible for Linux (and only Linux) to return EPOLLHUP + EPOLLIN when calling epoll_wait(). Unformtuantely,, XrdSysIOEvents first checks EPOLLIN and decides that everything is OK when, in fact, it is not because EPOLLHUP is also set. The subsequent read will then return EAGAIN going back to epoll_wait(); creating a loop. Eventually, the loop resolves itself when the socket is actually closed on the other end. However, that may take a while. The solution is to make sure no other "bad" bits are set when epoll_wait() indicates a socket is ready to read from. This appears to be a known issue and has hit other epoll event handlers out in the field.
The text was updated successfully, but these errors were encountered:
It is possible for Linux (and only Linux) to return EPOLLHUP + EPOLLIN when calling epoll_wait(). Unformtuantely,, XrdSysIOEvents first checks EPOLLIN and decides that everything is OK when, in fact, it is not because EPOLLHUP is also set. The subsequent read will then return EAGAIN going back to epoll_wait(); creating a loop. Eventually, the loop resolves itself when the socket is actually closed on the other end. However, that may take a while. The solution is to make sure no other "bad" bits are set when epoll_wait() indicates a socket is ready to read from. This appears to be a known issue and has hit other epoll event handlers out in the field.
The text was updated successfully, but these errors were encountered: