[ http://issues.apache.org/jira/browse/MODPYTHON-90?page=all ]
Graham Dumpleton updated MODPYTHON-90: -------------------------------------- Assign To: Graham Dumpleton > Explicitly don't allow Pdb support to work if not ONE_PROCESS mode. > ------------------------------------------------------------------- > > Key: MODPYTHON-90 > URL: http://issues.apache.org/jira/browse/MODPYTHON-90 > Project: mod_python > Type: Improvement > Components: core > Versions: 3.3 > Reporter: Graham Dumpleton > Assignee: Graham Dumpleton > Priority: Minor > > mod_python provides the PythonEnablePdb option for enabling of the Python > debugger. For it to work properly though, it is necessary to start httpd from > the command line with the -DONE_PROCESS option. If one doesn't do this though > and enables PythonEnablePdb when Apache is running normally, any request to a > URL for which the debugger is enabled will yield a 500 error. The details of > the 500 error will be: > 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 313, in HandlerDispatch > assert (type(result) == type(int())), \ > AssertionError: Handler 'mptest' returned invalid return code. > This error message isn't particularly helpful in understanding that the > problem is that the debugger can't be run in this mode. > To avoid this problem at the moment, all that can be done is for the user to > know that their Apache configuration should actually say: > <IfDefine ONE_PROCESS> > PythonEnablePdb On > </IfDefine> > This would mean they could leave the Apache configuration set the one way and > not have to worry. > What could instead be done in mod_python though is simply to ignore the > PythonEnablePdb option and that it is set if Apache hasn't been run in > ONE_PROCESS mode. Thus, presuming that MODPYTHON-89 has been implemented, the > mod_python code in mod_python.apache in the number of places where it occurs, > could say: > # call the object > if exists_config_define("ONE_PROCESS") and > config.has_key("PythonEnablePdb"): > result = pdb.runcall(object, conn) > else: > result = object(conn) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira