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 up RHEL 6.7.
  • All RHEL7 releases have the fix.

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content