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.