| Graham Dumpleton (JIRA) 2006-04-18, 12:06 am |
| req.add_handler/req.handler and PythonInterpPerDirective
--------------------------------------------------------
Key: MODPYTHON-160
URL: http://issues.apache.org/jira/browse/MODPYTHON-160
Project: mod_python
Type: Bug
Components: core
Versions: 3.3
Reporter: Graham Dumpleton
Assigned to: Graham Dumpleton
MODPYTHON-125 made req.handler writable. Being able to now do this has uncovered a bug whereby if PythonInterpPerDirective is used mod_python can cause Apache to crash. Code to trigger the problem is:
# .htaccess
SetHandler mod_python
PythonInterpPerDirective On
PythonFixupHandler interpreter_1
# interpreter_1.py
from mod_python import apache
def fixuphandler(req):
req.log_error("fixuphandler")
req.log_error("interpreter=%s"%req.interpreter)
req.log_error("directory=%s"%req.hlist.directory)
req.handler = "mod_python"
req.add_handler("PythonHandler","interpreter_1")
return apache.OK
def handler(req):
req.log_error("handler")
req.log_error("interpreter=%s"%req.interpreter)
req.log_error("directory=%s"%req.hlist.directory)
req.content_type = 'text/plain'
req.write('hello')
return apache.OK
In summary, if PythonHandler is not used in Apache configuration to enable mod_python but it is done by assignment to req.handler in fixup phase and then req.add_handler() is used to add a handler to be called for content phase, and PythonInterpPerDirecti
ve is being used, mod_python will cause Apache to crash.
Location of crash not yet identified.
|