> > [Fri Feb 28 14:31:49 2003] [alert] Child 1216 returned a Fatal error... > > Apache is exiting! > > That's bad. Sounds like an apache bug to me. Can anyone else confirm > if this is intended behavior or not? You might want to check the httpd > lists and newsgroups for info about this.
In http_main.c:process_child_status() there's a bit of code: if ((WIFEXITED(status)) && WEXITSTATUS(status) == APEXIT_CHILDFATAL) { ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, server_conf, "Child %d returned a Fatal error... \n" "Apache is exiting!", pid); exit(APEXIT_CHILDFATAL); } It looks like the parent server will exit if one of its children exits with APEXIT_CHILDFATAL. Unfortunately, if you grep for that in the Apache source, it comes up more than a few times. A stacktrace would be useful. Try setting a breakpoint on clean_child_exit() or use a call tracing utility like Solaris' truss. Without a stacktrace, you could try to work around the problem. It looks like many errors in the accept mutex code will trigger a fatal error -- try a different mutex (see http://httpd.apache.org/docs/mod/core.html#acceptmutex). Also, security errors such as errors from setuid(), setgid(), or getpwuid() may cause a fatal error. Finally, certain values of errno after the accept() call in child_main() will cause a fatal error (like ENETDOWN). -- Kyle Oppenheim Tellme Networks, Inc. http://www.tellme.com