Ask Your Question
0

Why there are issues with mod_wsgi, when runserver works?

asked 2012-11-17 13:45:35 -0600

esse gravatar image

updated 2012-11-18 12:10:35 -0600

Evgeny gravatar image

I have been trying to get askbot to work on my local server as a deployed project with out luck. Just to state, I have a number of Django projects that I run, so I am familiar with Django and deploying. My system:

Ubunut 12.04 (64bit) python 2.7.3

EDIT: when running from django, i.e. python manage.py runserver it appears to run fine with my limited testing.

With respect to deploying askbot I have tried many permutations, but lets start from the basic pip install askbot. I follow askbot documentation instructions for install, config, deploy with default settings. The site runs and I can log in etc., the issue is that once it is deployed the site will always hang and crash at some point when I am testing it by asking/answering questions. I believe it has something to do with mod_wsgi. The following are two different cases from my apache error log.

First example:

[Sat Nov 17 11:16:06 2012] [info] mod_wsgi (pid=28541): Daemon process deadlock timer expired, stopping process 'askbot3'.
[Sat Nov 17 11:16:06 2012] [info] mod_wsgi (pid=28541): Shutdown requested 'askbot3'.
[Sat Nov 17 11:16:11 2012] [info] mod_wsgi (pid=28541): Aborting process 'askbot3'.
[Sat Nov 17 12:16:11 2012] [error] [client 127.0.0.1] Premature end of script headers: django.wsgi, referer: http://sodiioo.media.mit.edu/account/signin/
[Sat Nov 17 12:16:11 2012] [error] [client 127.0.0.1] Premature end of script headers: django.wsgi, referer: http://sodiioo.media.mit.edu/account/signin/
[Sat Nov 17 12:16:11 2012] [debug] mod_deflate.c(615): [client 127.0.0.1] Zlib: Compressed 625 to 384 : URL /forum/questions/ask/, referer: http://127.0.0.1/forum/questions/ask/
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Attach interpreter ''.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Shutdown requested 'askbot2'.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Stopping process 'askbot2'.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Destroying interpreters.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Cleanup interpreter ''.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Terminating Python.
[Sat Nov 17 12:16:11 2012] [info] mod_wsgi (pid=11144): Python has shutdown.
[Sat Nov 17 12:16:11 2012] [notice] caught SIGTERM, shutting down

[Sat Nov 17 12:16:12 2012] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Sat Nov 17 12:16:12 2012] [warn] mod_wsgi: Runtime using Python/2.7.3.

Second example:

[Sat Nov 17 13:29:16 2012] [info] mod_wsgi (pid=5964): Daemon process deadlock timer expired, stopping process 'askbot3'.
[Sat Nov 17 13:29:16 2012] [info] mod_wsgi (pid=5964): Shutdown requested 'askbot3'.
[Sat Nov 17 13:29:21 2012] [info] mod_wsgi (pid=5964): Aborting process 'askbot3'.
[Sat Nov 17 14:29:21 2012] [error] [client 127.0.0.1] Premature end of script headers ...
(more)
edit retag flag offensive close merge delete

Comments

Does it work differently when you use the django runserver?

Evgeny gravatar imageEvgeny ( 2012-11-17 13:52:37 -0600 )edit

When running via django runserver it appears to work fine. That is I have not had any hanging issues while running via django server.

esse gravatar imageesse ( 2012-11-17 14:06:18 -0600 )edit

In that case it's unlikely to be due to a bug in askbot. Do versions of python for which mod_wsgi was built and your python version match?

Evgeny gravatar imageEvgeny ( 2012-11-17 14:13:42 -0600 )edit

The apache log states mod_wsgi compiled for python 2.7.2+, my system python is 2.7.3. I have libapache2-mod 3.3-4build1 installed.

esse gravatar imageesse ( 2012-11-17 14:20:41 -0600 )edit

Any suggestions?

esse gravatar imageesse ( 2012-11-18 10:07:42 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2012-11-18 11:30:29 -0600

Evgeny gravatar image

My best guess is that you have either binary incompatibility between python and mod_wsgi or errors in the configuration.

For example python paths may be different in your development and production environments - this can be tested by inserting the following at the top of your settings.py file:

import sys
sys.stderr.write('\n'.join(sorted(sys.path)) + '\n')

Then compare the outputs in your error log (in the production case) or the console (for the runserver).

It may be useful to set the log levels to "debug" in apache and askbot. Have a look at the relevant documentation about WSGIDaemonProcess and WSGIProcessGroup mod_wsgi directives.

edit flag offensive delete link more

Comments

Thanks for pointing me in the right direction. It was a combination of python path and Apache mod_wsgi variables not being set correctly. Things are working well so far. Thanks.

esse gravatar imageesse ( 2012-11-19 21:42:51 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2012-11-17 13:45:35 -0600

Seen: 3,345 times

Last updated: Nov 18 '12