Hi,

Hope someone can help debug the following issue I am having.

I have been running approx 15 django sites with mod_wsgi for a few
years now with no problems. In the last month I am getting sites that
randomly stop working, the process is gone and apache returns 500
status. I have set logging level to info but it still doesn't give me
enough info to pinpoint the problem. The only notable change I made to
the server was a switch to apache mpm-itk a couple of months back.

Server config is as follows, example of django.wsgi and virtual host
at bottom of email.
apache 2.2.8 mpm-itk
python 2.5.2
mod_wsgi 3.3 daemon mode
mod_python not installed

Example:

apache access log, site ok at 2am when googlebot visited then 500
error in morning
66.249.71.166 - - [02/May/2011:02:17:11 +1000] "GET /password_reset/
HTTP/1.1" 200 6071 "-" "Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)"
120.156.100.6 - - [02/May/2011:09:08:27 +1000] "GET /favicon.ico HTTP/
1.1" 500 739 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10)
Gecko/20100914 Firefox/3.6.10"

Error log:
[Mon May 02 02:17:11 2011] [info] mod_wsgi (pid=22081): Create
interpreter 'www.builderassist.com.au|'.
[Mon May 02 02:17:11 2011] [info] [client 66.249.71.166] mod_wsgi
(pid=22081, process='buildassist',
application='www.builderassist.com.au|'): Loading WSGI script '/var/
django/buildassist/django.wsgi'.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Daemon process
inactivity timer expired, stopping process 'buildassist'.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Shutdown
requested 'buildassist'.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Stopping
process 'buildassist'.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Destroying
interpreters.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Destroy
interpreter 'www.builderassist.com.au|'.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Cleanup
interpreter ''.
[Mon May 02 03:17:13 2011] [info] mod_wsgi (pid=22081): Terminating
Python.
[Mon May 02 03:17:14 2011] [info] mod_wsgi (pid=22081): Python has
shutdown.
[Mon May 02 09:13:27 2011] [error] [client 120.156.100.6] Premature
end of script headers: django.wsgi
[Mon May 02 10:21:24 2011] [error] [client 120.156.100.6] Premature
end of script headers: django.wsgi
[Mon May 02 10:21:24 2011] [error] [client 120.156.100.6] Premature
end of script headers: django.wsgi
---relaod apache here
[Mon May 02 10:21:26 2011] [info] mod_wsgi (pid=499): Attach
interpreter ''.
[Mon May 02 10:21:28 2011] [info] mod_wsgi (pid=499): Create
interpreter 'www.builderassist.com.au|'.
[Mon May 02 10:21:28 2011] [info] [client 120.156.100.6] mod_wsgi
(pid=499, process='buildassist',
application='www.builderassist.com.au|'): Loading WSGI script '/var/
django/buildassist/django.wsgi'.

I am getting the same thing with the other sites, happens about 3 or 4
times a week and requires apache reload to fix.

Any ideas?

Thanks,
Paddy


----- virtual host
--------------------------------------------------------------

WSGIDaemonProcess buildassist user=django group=django threads=25
display-name=%{GROUP} inactivity-timeout=3600
WSGIProcessGroup buildassist

WSGIScriptAlias / /var/django/buildassist/django.wsgi


----- django.wsgi
---------------------------------------------------------------

ALLDIRS = ['/usr/local/pythonenv/DJANGO_LEGACY_1.2/lib/python2.5/site-
packages/']
APP_NAME = 'buildassist'
import os, sys, site

# virtualenv stuff ------------------------------
prev_sys_path = list(sys.path)

for directory in ALLDIRS:
        site.addsitedir(directory)

new_sys_path = []

for item in list(sys.path):
    if item not in prev_sys_path:
        new_sys_path.append(item)
        sys.path.remove(item)
sys.path[:0] = new_sys_path

# --------------------------------

sys.path.append('/var/django')
sys.path.append('/var/django/%s' % APP_NAME)

os.environ['DJANGO_SETTINGS_MODULE'] = '%s.settings' % APP_NAME
os.environ['PYTHON_EGG_CACHE'] = '/tmp/eggs'

import django.core.handlers.wsgi

_application = django.core.handlers.wsgi.WSGIHandler()

import posixpath

def application(environ, start_response):
    # Wrapper to set SCRIPT_NAME to actual mount point.
    environ['SCRIPT_NAME'] = posixpath.dirname(environ['SCRIPT_NAME'])
    if environ['SCRIPT_NAME'] == '/':
        environ['SCRIPT_NAME'] = ''
    return _application(environ, start_response)

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to