RPC TCP connection terminated by server after data sent to client is not acknowledged

Solution In Progress - Updated -

Issue

  • Client application running on Red Hat Enterprise Linux repeatedly calls the RPC procedure clnt_call with a timeout of 0
  • The receive buffer on the client fills and eventually the Red Hat Enterprise Linux stops acknowledging the TCP segments from the RPC server
  • RPC server terminates the TCP connection after multiple retransmissions
  • The failure to acknowledge the TCP segments is due to the small number of bytes (< 20) sent by the server in each TCP segment and window scaling. The size of the scale makes it impossible to reduce the advertised window appropriately. If window scaling is disabled a zero window is advertised but the result is a hung connection.

Environment

  • Red Hat Enterprise Linux 6
  • libtirpc

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