06-23-05 10:50 PM
Anybody had a chance to look at this yet?
I'm kind of suspicous of python_merge_config in mod_python.c. It gets
called once for every request, and calls apr_pcalloc which I assume
allocates some memory from the pool.
py_config *merged_conf =
(py_config *) apr_pcalloc(p, sizeof(py_config));
I don't see where or how this memory gets freed. I've taken a look at
the apache src code but get lost pretty quick.
Regards,
Jim
Jim Gallacher (JIRA) wrote:
> PythonOption directive causes memory leak
> -----------------------------------------
>
> Key: MODPYTHON-60
> URL: http://issues.apache.org/jira/browse/MODPYTHON-60
> Project: mod_python
> Type: Bug
> Components: core
> Versions: 3.1.4, 3.1.3, 3.2.0
> Environment: Linux
> Reporter: Jim Gallacher
> Priority: Critical
>
>
> This was previously reported on the mod_python mailing list. See http://www.modp
ython.org/pi...ril/015395.html
>
> A memory leak results when there is a PythonOption directive in the apache
config file. Leak occurs when PythonOption is in either <VirtualHost> or <
Directory> section.
>
> For each request, approx 25 bytes of memory is leaked per PythonOption dir
ective.
>
> Methodolgy (using top to gauge memory usage, 100,000 requests per test cas
e):
>
> def handler(req):
> req.content_type = 'text/plain'
> req.write('PythonOption test\n')
> return apache.OK
>
> 1. No PythonOption directives:
> 1.4 % MEM
>
> 2. 50 PythonOption directives:
> 11.3% MEM
>
> 3. 100 PythonOption directives:
> 25.4 % MEM
>
>
> I know 50 or 100 PythonOptions is not likely in a production system, but i
t clearly demonstrate the leak.
>
>
>
[ Post a follow-up to this message ]
|