Operating System - HP-UX
1830237 Members
13161 Online
109999 Solutions
New Discussion

TCP_NODELAY error with Apache 2

 
Michael Simone
Frequent Advisor

TCP_NODELAY error with Apache 2

I'm getting a new error on one of my 11.11 servers running Apache 2.0.51 now that I've put it in production. In the Apache error log, I'm seeing this:

[warn] (22)Invalid argument: apr_socket_opt_set: (TCP_NODELAY)

Definitely not for every hit, or even for most, but several per minute. This server is now serving production web traffic behind a Cisco content switch. I see the same error to a much lesser degree on my primary production server running 11.23. I can't say it's never happened before, but I hadn't seen it. To the best of my knowledge, it's not impacting user experience. Maybe it's nothing, but I'd like to know if anyone's seen it before and what it might mean.
3 REPLIES 3
Steven E. Protter
Exalted Contributor

Re: TCP_NODELAY error with Apache 2

I would look at network configuration.

Appears the switch may not be configured in a way the NIC on the server and all network services need.

I'd try carefully to correct this before it impacts user performance.

Also might want to see the Listen directive in http.conf, see that its on an ip address that always available and not failing over to another server with a serviceguard package.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Stephen Keane
Honored Contributor

Re: TCP_NODELAY error with Apache 2

EINVAL when trying to set TCP_NODELAY option usually means that the connection
to the client has been lost.
rick jones
Honored Contributor

Re: TCP_NODELAY error with Apache 2

In addition to the possiblilty that the remote has closed the connection, you might want to tusc one or more of the httpd's and see if perhaps sometimes one of the arguments to the setsockopt() is getting botched.

IIRC TCP_NODELAY is one of the settings inherited across an accept() call, so if TCP_NODELAY is (for whatver reason) being set on every connection, there is a possible enhancement right there.
there is no rest for the wicked yet the virtuous have no pillows