httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tikka, Sami" <>
Subject RE: Win32DisableAcceptex
Date Mon, 29 Mar 2004 11:10:01 GMT
>-----Original Message-----
>From: Bill Stoddard [] 
>Please double check then check again. This sounds a lot like a 
>dynamic ip address issue.

The machine is using static IP address but the DHCP service was also running.
I disabled it but the hang with WSAEHOSTDOWN error still occurs every few

>The listener is opened in the parent and inheritied by the 
>child process. I would say the listening socket is 
>still ok if the hang recovers after a period of time. Try 
>running apache in one process mode (apache 
>-DONE_PROCESS). I have no idea if the server will hold up 
>under load in one process mode because I've not 
>tested it recently, however if it does and the hang does not 
>occur, it gives us a real big hint that the 
>problem may be in the Windows kernel related to the listening 
>socket being inherited.

Actually, apache is running with -DONE_PROCESS at my client's. That is
because I wanted to be able to detect and report any possible crashes. So it
is not an issue with socket inheritance.

I have also made a small patch that checks if the GetOverlappedResult() in
winnt_accept() fails, apache logs the error and calls exit(). This seemed to
help the customer quite a bit. Usually the the newly started apache instance
also got this problem and exited but after 3 or 4 new restarts the hang was
over and apache operated normally.

I was wondering if it would help to just close the listening socket and
create&bind&listen a new one instead of doing a full-blown restart. Of
course, now that I know the listening socket is normally inherited from the
parent process, I think closing it and making a new one might be very

Perhaps a graceful restart would be enough but there was no way to initiate
that from the child process, right?

-- Sami

View raw message