SUMMARY: socket error: accept failed

From: Rubens Mau (rmaster@dialdata.com.br)
Date: Wed Jul 02 1997 - 05:51:32 CDT


Thanks for all the answeres that I got. I didn't solved the problem, but
seems that it will be solved with Solaris 2.6. - Thanks to Jane Williams to
her answer. Following I listed my original question and the others questions
that I got.

----------------------------------------------------------------------------
--------
ANSWER 1

 I've been seeing this with Netscape Enterprise 2.0 as well. I checked
 with Netscape, and they tell me that this is a Solaris message that is
 passed through to the server. It has something to do (forgive me, my
 memory isn't what it used to be) with Solaris serializing its socket
 assignments. It sounded like Solaris was slow in making the assignment,
 and Netscape's server would print the message, but that the connection
 would go through anyway. We haven't seen any performance loss that we
 could attribute to this problem.

 According to Netscape, this should be fixed in Solaris 2.6
 
Jane Williams <williams@qinpalace.com>

----------------------------------------------------------------------------
--------
ORIGINAL QUESTION
-----------------

I have a Ultra 170 with 128 Mbytes of memory, running Solaris 2.5.1 , and
the WWW Apache Server with lots of virutal domains.

I am receiving the following error message, in the apache error log.

[Fri Jun 27 16:25:59 1997] - socket error: accept failed
[Fri Jun 27 16:26:01 1997] accept: Protocol error

I have no error messges in /var/adm/messages, and the SE toolkit programs
didn't present
any problem.

Any ideas ??

Rubens Mau
info@dialdata.com.br

----------------------------------------------------------------------------
--------
ANSWER 2

Maybe Apache ran out of file descriptors?
The default limit is 64 FDs per process, but this can be increased with
setrlimit(), and I suppose that the server is smart enough to do this!

You can also try /usr/proc/bin/pfiles <pid>, to see how much open FDs a
process has.

Stefan PUSCASU
stfp@roipb.cs.pub.ro
----------------------------------------------------------------------------
--------
ANSWER 3

The problem was that the MAX child processes with Apache was at 150
(hardcoded) I hacked the child limit to something like 2048 and used the
httpd.conf's maxchildren to set it to something reasonable.
Check the http.h for some HARD_MAX_CHILD or something like that...

Mike Wilson http://www.flash.net/~mwilson/
mwilson@flash.net http://www.drwho.org/
----------------------------------------------------------------------------
--------
ANSWER 4

Try running the server in debug mode using truss. You'll probably
have to be root to do this:

            truss /path/to/httpd -X
 
    This might tell you where the problem is.

 Karl Vogel
vogelke@c17.wpafb.af.mil
----------------------------------------------------------------------------
--------
ANSWER 5

I've seen this on a couple of different SPARC servers running 2.5.1 and
Apache 1.1.3. It seems to be a TCP/IP problem rather than an Apache problem,
but that's just my hunch. It also seems to be associated with (broken?)
proxy servers accessing the server; check your access logs during the same
time you get the errors (if you're logging USER_AGENT that is).

##Jason Spears <jspears@use.usit.net>



This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:58 CDT