You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-dev@quetz.apache.org by "Graham Dumpleton (JIRA)" <ji...@apache.org> on 2006/10/14 04:49:04 UTC

[jira] Commented: (MODPYTHON-172) Memory leak with util.fieldstorage using mod_python 3.2.8 on apache 2.0.55

    [ http://issues.apache.org/jira/browse/MODPYTHON-172?page=comments#action_12442163 ] 
            
Graham Dumpleton commented on MODPYTHON-172:
--------------------------------------------


   [[ Old comment, sent by email on Sat, 8 Jul 2006 10:27:48 +1000 ]]

On first look I would agree there is possibly a problem. There also  
would appear to be
similar issues in other parts of mod_python. For example in  
cfgtree_walk() of util.c it has:

         PyObject *t = Py_BuildValue("(s, s)", dir->directive, dir- 
 >args);
         if (!t)
             return PyErr_NoMemory();

         PyList_Append(list, t);

with "t" not being DECREF'd either.

Also, in req_readlines() of requestobject.c, we have:

     line = req_readline(self, rlargs);
     while (line && (PyString_Size(line)>0)) {
         PyList_Append(result, line);
         size += PyString_Size(line);
         if ((sizehint != -1) && (size >= size))
             break;
         line = req_readline(self, args);
     }

No DECREF for item added to list.

I can't see any others in relation to dictionaries yet, but we  
probably need to do a good
audit of all the code for such things as I have only check  
PyList_Append() and
PyDict_SetItem() and not the other ways stuff can be added to such  
data structures.

Anyway, still need to run some tests yet to confirm memory leak. :-)

Graham




> Memory leak with util.fieldstorage using mod_python 3.2.8 on apache 2.0.55
> --------------------------------------------------------------------------
>
>                 Key: MODPYTHON-172
>                 URL: http://issues.apache.org/jira/browse/MODPYTHON-172
>             Project: mod_python
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.8
>         Environment: Win32 XP  SP1 / SP2
> Apache 2.0.55  installed from binary (.MSI)
> Python 2.4.2  or  2.4.3    installed from binary from www.python.org    
>            Reporter: Laurent Blanquet
>             Fix For: 3.3, 3.2.10
>
>
> I encounter memory leaks [~ 16 K per request) using the configuration described below.
> =============================
> Python configuration from Httpd.conf:
> =============================
> Alias /python/ "d:/python24/B2B/"      
> <Directory "d:/python24/B2B">
>         AddHandler mod_python .py                  
>         PythonHandler pyHandlerHTTP                  
>         PythonDebug On                             
> </Directory>                                       
> =============================
> Test handler -  pyHandlerHTTP.py :
> =============================
> import mod_python
> from mod_python import util
> def handler(req):
>       #Removing this line solves the problem.
>       F=util.FieldStorage( req )   
>       return mod_python.apache.OK
> =============================
> HTTP Request (dump using TCPWATCH):
> =============================
> POST http://localhost:80/python/Alertes.py HTTP/1.0
> Content-Type: multipart/form-data; boundary=--------061006144341906
> Content-Length: 209
> Proxy-Connection: keep-alive
> Host: www.tx2-localhost
> Accept: text/html, */*
> User-Agent: Mozilla/3.0 (compatible; Indy Library)
> Proxy-Authorization: Basic Og==
>  
> ----------061006144341906
> Content-Disposition: form-data; name="TYPE"
>  
> LAST_ALERTS
> ----------061006144341906
> Content-Disposition: form-data; name="FILEAGE"
>  
> 180
>  
> ----------061006144341906

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira