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