OK, anything allocated to a pool is automatically deallocated by the
pool when it is cleared, which should be at the end of a request :

http://www.apachetutor.org/dev/pools

So if there is a memory leak, it should not be caused by something
allocated to a pool.

Regards,
Nicolas

2005/6/24, Nicolas Lehuen <[EMAIL PROTECTED]>:
> It looks like that's the way to do it :
> 
> http://modules.apache.org/doc/API.html#per-dir
> http://www.apachetutor.org/dev/config
> 
> But the memory management seems very mysterious to me here... I can't
> find anything that looks like a destructor for the py_config structure
> !
> 
> Regards,
> Nicolas
> 
> 2005/6/24, Jim Gallacher <[EMAIL PROTECTED]>:
> > 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.modpython.org/pipermail/mod_python/2004-April/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 
> > > directive.
> > >
> > > Methodolgy (using top to gauge memory usage, 100,000 requests per test 
> > > case):
> > >
> > > 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 
> > > it clearly demonstrate the leak.
> > >
> > >
> > >
> >
> >
>

Reply via email to