Apache Mod-Python - Created: (MODPYTHON-90) Explicitly don't allow Pdb support to work if not ONE_PROCESS

This is Interesting: Free IT Magazines  
Home > Archive > Apache Mod-Python > November 2005 > Created: (MODPYTHON-90) Explicitly don't allow Pdb support to work if not ONE_PROCESS





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Created: (MODPYTHON-90) Explicitly don't allow Pdb support to work if not ONE_PROCESS
Graham Dumpleton (JIRA)

2005-11-11, 2:46 am

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
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 PythonEnableP
db 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.apac
he 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)



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com