RHEL: Why does recvfrom() sometimes return EINVAL instead of ETIMEDOUT after a retransmission timeout?
Issue
- After deleting a local IP address, an application sent data to an existing connection through that IP address. Therefore TCP retransmissions were invoked, then the retransmission continued until the
tcp_retries2sysctl timeout. If finding the routing cache entry failed aftertcp_retries1boundary or after the garbage collection, this will result in theEINVALerror. After that the application calledrecvfrom()and the connection and gotEINVALerror instead ofETIMEDOUT.
Environment
- Red Hat Enterprise Linux 6
- kernel-2.6.32-358.el6
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
