httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Justin Erenkrantz <jus...@erenkrantz.com>
Subject Failure in child_init when doing graceful with flock()
Date Sun, 14 Mar 2004 18:15:43 GMT
This morning, when we did a graceful to the httpd serving cvs.apache.org 
(which runs HEAD not APACHE_2_0_BRANCH), it failed and gave us:

[Sun Mar 14 00:00:00 2004] [emerg] (2)No such file or directory: Couldn't 
initialize cross-process lock in child
[Sun Mar 14 00:00:00 2004] [emerg] (2)No such file or directory: Couldn't 
initialize cross-process lock in child
[Sun Mar 14 00:00:00 2004] [alert] Child 10485 returned a Fatal error... 
server is exiting!

It subsequently brought down the entire server with it.  (That's sort of bad, 
too.)

This error lines up with prefork.c around line 485:

status = apr_proc_mutex_child_init(&accept_mutex, ap_lock_fname, pchild);
if (status != APR_SUCCESS) {
  ap_log_error(APLOG_MARK, APLOG_EMERG, status, ap_server_conf,
               "Couldn't initialize cross-process lock in child");
  clean_child_exit(APEXIT_CHILDFATAL);
}

We don't have a LockFile or an AcceptMutex directive, so it should be using 
the default, which is flock() on FreeBSD.

Anyone else seen this?  Should we switch the AcceptMutex directive to fcntl()?
(If this does fail with flock(), should we just remove support for flock()?)

Thanks!  -- justin

Mime
View raw message