Created: (MODPYTHON-161) Wrong interpreter chosen with
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > Apache Server configuration support > Apache Mod-Python > Created: (MODPYTHON-161) Wrong interpreter chosen with




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Created: (MODPYTHON-161) Wrong interpreter chosen with  
Graham Dumpleton (JIRA)


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
04-18-06 05:07 AM

Wrong interpreter chosen with req.add_handler()/PythonInterpPerDirective.
-------------------------------------------------------------------------

Key: MODPYTHON-161
URL: http://issues.apache.org/jira/browse/MODPYTHON-161
Project: mod_python
Type: Bug

Components: core
Versions: 3.3
Reporter: Graham Dumpleton


Having fixed MODPYTHON-160, if using:

# .htaccess

SetHandler mod_python
PythonInterpPerDirective On
PythonFixupHandler interpreter_1

# interpreter_1.py

from mod_python import apache
import os, sys

directory = os.path.dirname(__file__)

def fixuphandler(req):
req.log_error("fixuphandler")
req.log_error("interpreter=%s"%req.interpreter)
req.log_error("directory=%s"%req.hlist.directory)
req.add_handler("PythonHandler","interpreter_1",directory)
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

when select_interp_name() in src/mod_python.c tries to determine the interpr
eter name, for PythonInterPerDirective, it will use the value as supplied as
 directory argument to req.add_handler(). In doing this though, it doesn't c
onsider the fact that the d
irectory may not have a trailing slash and since interpreter names for Pytho
nInterpPerDirective always have a trailing slash, the handler will not be ex
ecuted in correct interpreter context.

[Sun Apr 16 17:20:00 2006] [notice] mod_python: (Re)importing module
 'interpreter_1'
[Sun Apr 16 17:20:00 2006] [error] [client ::1] fixuphandler
[Sun Apr 16 17:20:00 2006] [error] [client ::1] interpreter=/Use
rs/grahamd/Workspaces/testing/interpreter-1/
[Sun Apr 16 17:20:00 2006] [error] [client ::1] directory=/Users
/grahamd/Workspaces/testing/interpreter-1/
[Sun Apr 16 17:20:00 2006] [notice] mod_python: (Re)importing module
 'interpreter_1'
[Sun Apr 16 17:20:00 2006] [error] [client ::1] handler
[Sun Apr 16 17:20:00 2006] [error] [client ::1] interpreter=/Use
rs/grahamd/Workspaces/testing/interpreter-1
[Sun Apr 16 17:20:00 2006] [error] [client ::1] directory=/Users
/grahamd/Workspaces/testing/interpreter-1

A further problem is that normally the path indicating where a directive was
 defined is internally calculated from Apache configuration and thus always 
uses POSIX directory conventions, ie., forward slash. If the above code were
 run on Win32, the director
y calculated from __file__ is going to most likely use DOS directory convent
ions, ie., backward slash. Thus, even if a trailing slash were to be added, 
it still will not work because the remainder of the path is going to use bac
kward slash and thus the in
terpreter name still will not match what it probably should be.

The main purpose of the directory argument to req.add_handler() is to know w
here to find the module referenced in the handler argument. In this case it 
is also used to determine the Python interpreter name. The fix may be that t
he interpreter name be dete
rmined in some other way based on the interpreter in use when the req.add_ha
ndler() call was made.

This is just part of problems I can possibly see with calculation of interpr
eter names for handlers. More on this another time. :-)











[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 06:37 AM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register