Graham Dumpleton
grahamd at dscpl.com.au
Sun Jun 26 03:38:48 EDT 2005
There is an alternate solution somewhere down below. :-) On 26/06/2005, at 11:45 AM, Wouter van Marle wrote: > On Sat, 2005-06-25 at 20:27 -0400, Paul Sholtz wrote: > >> Thanks for the advice. In fact, I already checked that Web page >> before I posted on this list, but .... for some reason it's still not >> working. >> >> I'm baffled b/c the Web page says if you get an "Internal Server >> Error", it probably means that Apache hasn't loaded mod_python yet, >> but per what I'm seeing in error_log, and per the sig I can in my >> apache error messages, it looks like mod_python has in fact been >> loaded... > > > If your script does not return any output to apache to display, then > you also get an internal server error. So check your script! For the "mptest" example I don't think this is the case. If one is using mod_python.publisher and you don't write back a response explicitly and let the function return None, then yes you will get a 500 error, but not so with mptest. For example, for mptest.py, if you have: def handler(req): req.content_type = "text/plain" req.send_http_header() req.write("XXX") Ie., leave off return of apache.OK, you will get an error in the browser like: XXX <pre> Mod_python error: "PythonHandler mptest" Traceback (most recent call last): File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/site-packages/mod_python/apache.py", line 310, in HandlerDispatch assert (type(result) == type(int())), \ AssertionError: Handler 'mptest' returned invalid return code. </pre> With the Python error details also appearing in the Apache error log. If you simply don't return any content, ie., def handler(req): return apache.OK The browser will get a 200 and may well timeout waiting for content. I am inclined to think that what may be happening is that the original poster is running up against problems associated with: http://issues.apache.org/jira/browse/MODPYTHON-35 This is where 500 errors are occurring in some strange situations in the mod_python.c code file but reasons for the 500 errors aren't logged. This exact issue was hitting someone else before with Mac OS X. It came down to being caused by a known Mac OS X specific problem but where rather than causing the Apache process to crash as it had for other people, it was causing 500 errors. End result is that original poster should try applying the patches detailed at: http://www.dscpl.com.au/projects/vampire/patches.html These actually address something multithreading issues, but also include a Mac OS X specific workaround for the problem which can cause these Apache crashes or 500 errors on that platform. Graham
|