I have a web server based on Ubuntu Server 9.10 with this software:
apache 2
PHP 5.3
MySQL 5
Python 2.5
Few of my websites are PHP based, few use python/django through mod_wsgi.
For month or so, every day my apache server stops responding until I manually restart it.
Error logs show:
[Fri Mar 05 17:06:47 2010] [error] could not make child process 25059 exit, attempting to continue anyway
[Fri Mar 05 17:06:47 2010] [error] could not make child process 25061 exit, attempting to continue anyway
[Fri Mar 05 17:06:47 2010] [error] could not make child process 24930 exit, attempting to continue anyway
[Fri Mar 05 17:06:47 2010] [error] could not make child process 25084 exit, attempting to continue anyway
[Fri Mar 05 17:06:47 2010] [error] could not make child process 25105 exit, attempting to continue anyway
and so on.
I tried to google this problem but it seems, that I can't find a solution there.
How can I determine the cause of this error and how do I fix it?
Thank you for your help.
UPDATE
- Updating mod-wsgi to version 3.1 didn't solve the problem
- Updating PHP to 5.3 also didn't solve it
Here is a list of all installed modules:
core
mod_log_config
mod_logio
prefork
http_core
mod_so
mod_alias
mod_auth_basic
mod_authn_file
mod_authz_default
mod_authz_groupfile
mod_authz_host
mod_authz_user
mod_autoindex
mod_cgi
mod_deflate
mod_dir
mod_env
mod_mime
mod_negotiation
mod_php5 mod_rewrite
mod_setenvif
mod_status
mod_wsgi
Here's how my virtual host with wsgi looks:
<VirtualHost *:80>
ServerName example.net
DocumentRoot /var/www/example.net
#wcgi script that serves all the thing
WSGIScriptAlias / /var/www/example.net/index.wsgi
WSGIDaemonProcess example user=wsgideamonuser group=root processes=1 threads=10
WSGIProcessGroup example
Alias /static /var/www/example.net/static
#serving admin files
Alias /media/ /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media/
<Location "/static">
SetHandler None
</Location>
<Location "/media">
SetHandler None
</Location>
ErrorLog /var/www/example.net/error.log
</VirtualHost>
Error log now contains two types of errors fallowed one by another:
[error] child process 9486 still did not exit, sending a SIGKILL
[error] could not make child process 9106 exit, attempting to continue anyway
The error comes from server/mpm_common.c in Apache source code. When Apache goes to reclaim server child process, presumably when they are triggered to shutdown, the processes aren't actually dying. The processes have likely hung for some reason.
To eliminate mod_wsgi or Python as an issue, ensure you are using mod_wsgi 3.1 and use daemon mode, not embedded mode, of mod_wsgi.