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 
PythonInterpPerDirective is being used, mod_python will cause Apache to crash.

Location of crash not yet identified.


-- 
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

Reply via email to