RHEL6: Why do the poll routines fail to set EPOLLOUT under some conditions for TCP connections?

Solution In Progress - Updated -

Issue

  • We have written some network code using epoll and have noticed that for the standard RHEL 6.x is does not work as expected. RHEL 7.* and MRG seems to work correctly
  • A program that tries to connect() to non existent port via the loopback device demonstrates this. It calls epoll_wait() that returns without the EPOLLOUT bit set on RHEL6.
  • For RHEL7
flags = IN OUT HUP ERR
socket is writable, hurrah!
  • For RHEL6:
flags = IN HUP ERR
socket is NOT writable, oh dear...

Environment

  • Red Hat Enterprise Linux
  • All RHEL6 releases
  • All RHEL7 releases have the fix

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.