[ 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