At 05:10 AM 3/29/2004, Tikka, Sami wrote:
>>-----Original Message-----
>>From: Bill Stoddard [mailto:[EMAIL PROTECTED] 
>>
>>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
>hours.
>
>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.

Good to know!

>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.

Good solution - for parent/child setups we ximply need to exit with a 
specific AP_ERROR_NETRESET code to tell the parent to recreate the
listeners.

>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. 

You cant - thats why Apache is structured with a parent/child setup.
Although it's 1:1 now, we have plans to go 1:many - the child cannot
create the listen socket.

>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 tricky... 
>
>Perhaps a graceful restart would be enough but there was no way to initiate
>that from the child process, right?

Of course - child exit()s.  But if you don't want to wait - we need another
custom service signal (we use 128 (?) for graceful, so use 129 to signal that
the network listeners are borked and do a graceful w/ fresh sockets.  

Reply via email to