[mod_python] Python Debugger doesn't start in Mod_Python

René Grob rpgrob at hispeed.ch
Mon May 14 18:07:51 EDT 2007


Graham Dumpleton schrieb:
> BTW, a couple of things to try.
>
> 1. See if running httpd with options '-X -DONE_PROCESS' makes a 
> difference.
>
> 2. See if you can arrange for environment variable called
> 'AP_PARENT_PID' to be set to '0' in the environment that the httpd
> process is running so as to stop mod_python avoiding its
> initialisation step. Am not sure what magic is required on Windows to
> set environment variables.
>
> Graham
>
> On 11/05/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote:
>> I suspect it is because of this change being made:
>>
>>   http://issues.apache.org/jira/browse/MODPYTHON-195
>>
>> I had been recently wondering whether the change would upset single
>> process debugging.
>>
>> As it is, the issue has had to be reopened because it causes another
>> minor nuisance issue with version information for Python/mod_python
>> not being displayed.
>>
>> Do you have the ability to compile mod_python from source code
>> yourself and thereby remove the change described in that issue and see
>> if it then works?
>>
>> It still may be the case however that single process debugging has
>> never worked on Windows for one reason or another since people so
>> rarely use it.
>>
>> Graham
>>
>> On 11/05/07, René Grob <rpgrob at hispeed.ch> wrote:
>> > Since my small intranet application keeps getting more complex I tried
>> > to fix some bugs using the Python Debugger. According to the 
>> Mod_python
>> > manual I added the "PythonEnablePdb On" directive into the directory
>> > context of my Python application and started httpd from the command 
>> line
>> > with the option -DONE_PROCESS (after stopping httpd first, of course).
>> > But Apache didn't start and an error window occurred instead 
>> showing the
>> > following message:
>> >
>> > "Runtime Error! Program: <Apache path>\httpd.exe. This application has
>> > requested the Runtime to terminate it in an unusual way. Please 
>> contact
>> > the applications's support team for more information".
>> >
>> > I'm using the following prebuilt binaries on Win2k SP4:
>> >
>> > mod_python-3.3.1.win32-py2.5-Apache2.2.exe
>> > python-2.5.msi
>> > apache_2.2.4-win32-x86-no_ssl.msi
>> >
>> > When Apache is started with the option -DONE_PROCESS but without
>> > Mod_python there is no error and no Mod_python either (of course). 
>> On a
>> > different machine with WinXP SP2, Apache 2.2.3, Python 2.4.3 and
>> > Mod_python 2.7.10 the debugger works as expected.
>> >
>> > Does anyone have an idea how to fix this?
>> >
>> > Thanks
>> >
>> > René
>> >
>> > _______________________________________________
>> > Mod_python mailing list
>> > Mod_python at modpython.org
>> > http://mailman.modpython.org/mailman/listinfo/mod_python
>> >
>>
>
Dear Graham

Thanks for your immediate answer. Your first suggestion, to recompile 
Modpython with the indicated corrections will probably

be the best. But unfortunately I do not have a Microsoft compiler in my 
box. Does anybody know wether I can use the freely

downloadable C++ 'express' version for this?

So I tried out your second suggestions: Starting httpd with the '-X 
-DONE_PROCESS' option results in the same runtime error.

The same happens when I add the '-X' option alone. After setting the 
environment variable AP_PARENT_PID to 0 (which is really

no magic: simply type 'set AP_PARENT_PID=0' <enter> at the command line 
[without the quotes]) strange things happen. Apache

aborts with the following error:

'httpd: Could not open configuration file /apache/conf/httpd.conf: The 
system cannot find the indicated path'

This is independent of wether I add the '-DONE_PROCESS' and/or the '-X' 
option or none at all.
 
After adding the option '-f <path to httpd.conf>/httpd.conf' Apache 
seems to start but the shell returns to the prompt after a

second without any error message. Looking up the process list doesn't 
show any httpd running. So I had a look at the error.log

where I found the following messages:

[Mon May 14 23:20:31 2007] [notice] mod_python: Creating 8 session 
mutexes based on 0 max processes and 250 max threads.
[Mon May 14 23:20:31 2007] [notice] Child 2176: Child process is running
[Mon May 14 23:20:31 2007] [crit] (OS 6)Invalid Handle.  : Child 2176: 
Unable to retrieve the ready event from the parent

With the '-DONE_PROCESS'and/or '-X' option it looks a bit different but 
essentially with the same result:

[Mon May 14 23:28:05 2007] [notice] mod_python: Creating 8 session 
mutexes based on 0 max processes and 250 max threads.
[Mon May 14 23:28:06 2007] [notice] Child 1084: Child process is running
[Mon May 14 23:28:06 2007] [notice] Child 1084: Acquired the start mutex.
[Mon May 14 23:28:06 2007] [notice] Child 1084: Starting 250 worker threads.
[Mon May 14 23:28:06 2007] [crit] (OS 6)Invalid Handle.  : Child 1084: 
WAIT_FAILED -- shutting down server
[Mon May 14 23:28:06 2007] [notice] Child 1084: Starting thread to 
listen on port 80.
[Mon May 14 23:28:07 2007] [notice] Child 1084: Released the start mutex
[Mon May 14 23:28:08 2007] [notice] Child 1084: Waiting for 250 worker 
threads to exit.
[Mon May 14 23:28:08 2007] [notice] Child 1084: All worker threads have 
exited.
[Mon May 14 23:28:08 2007] [notice] Child 1084: Child process is exiting


By the way I tried to start the debugger on a different installation 
with Apache 2.2.3, Modpython 3.2.10 and Python 2.43 on

WinXPSP2. It worked just as expected. The same was true for an older 
installation using Apache 2.0.52, Modpython 3.1.3 and

Python 2.3.4 on WinXPSP1. So the 'problem' must have been introduced 
very recently...(I'm sorry I mixed up the version number

of Modpython in the first post: I didn't test Modpython 2.7.10).

This additional information probably supports your hypothesis that the 
problem is related to

http://issues.apache.org/jira/browse/MODPYTHON-195 doesn't it?

René


More information about the Mod_python mailing list