Apache Mod-Python - Commented: (MODPYTHON-195) Possible leaking of Win32 event

This is Interesting: Free IT Magazines  
Home > Archive > Apache Mod-Python > November 2006 > Commented: (MODPYTHON-195) Possible leaking of Win32 event





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 Commented: (MODPYTHON-195) Possible leaking of Win32 event
Jeff Robbins (JIRA)

2006-11-07, 1:12 am

[ http://issues.apache.org/jira/brows...action_12447681 ]

Jeff Robbins commented on MODPYTHON-195:
----------------------------------------


[[ Old comment, sent from unregistered email on Tue, 24 Oct 2006 09:13:26 -0400 ]]

Graham,

I added a printout after the call to apr_pool_user_data_get. What I think
is happening is that the hook python_init() is called "again" in the parent
process (so data is already 1) and then called the expected 2 times in the
child process (wherein the usual protection works and the bulk of
python_init() only runs through on the second time in. The problem is that
the parent process on windows is long-lived and is just there to spin up and
down the child process that does the real web serving. It is the parent
process run through python_init() that needs to be defeated, and the usual
protection does no good there.

code in mod_python.c:
rc = apr_pool_userdata_get(&data, userdata_key, s->process->pool);
// JSR
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, s, "python_init:
apr_pool_userdata_get() rc=%d data=%x", rc, data);

error log fragment: (with my comments added):
[Tue Oct 24 09:04:41 2006] [notice] Parent: Received restart signal --
Restarting the server.
[Tue Oct 24 09:04:41 2006] [notice] Child 1952: Exit event signaled. Child
process is ending.
[Tue Oct 24 09:04:41 2006] [error] python_init: apr_pool_userdata_get() rc=0
data=1 // this is the call in the parent process that we need to skip
[Tue Oct 24 09:04:41 2006] [notice] Parent: Created child process 9688
[Tue Oct 24 09:04:41 2006] [error] python_init: apr_pool_userdata_get() rc=0
data=0 // these are the two calls in the new child process
[Tue Oct 24 09:04:41 2006] [error] python_init: apr_pool_userdata_get() rc=0
data=1
[Tue Oct 24 09:04:41 2006] [notice] mod_python: Creating 8 session mutexes
based on 0 max processes and 50 max threads.
[Tue Oct 24 09:04:41 2006] [notice] Child 9688: Child process is running
[Tue Oct 24 09:04:42 2006] [notice] Child 1952: Released the start mutex
[Tue Oct 24 09:04:42 2006] [notice] Child 9688: Acquired the start mutex.
[Tue Oct 24 09:04:42 2006] [notice] Child 9688: Starting 50 worker threads.

Given the long-lived nature of the parent process, I'm beginning to think
that your idea of a static might be better than checking for the
environmental.

- Jeff



> Possible leaking of Win32 event handles when Apache restarted.
> --------------------------------------------------------------
>
> Key: MODPYTHON-195
> URL: http://issues.apache.org/jira/browse/MODPYTHON-195
> Project: mod_python
> Issue Type: Bug
> Components: core
> Affects Versions: 3.2.10
> Reporter: Graham Dumpleton
>
> Jeff Robins in:
> http://mail-archives.apache.org/mod...dscpl.com.au%3e
> indicates a belief that when an Apache restart is performed on Windows that there are a number of Win32 event handles leaked. His belief is that this seems to be linked to mod_python.


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com