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/09/11 12:14:22 UTC

[jira] Commented: (MODPYTHON-182) Memory leak in request readline()

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

Do the patches which been made on this cover all the problems that are known? If yes and we can mark as resolved, still need to add entry into change list of documentation.

> Memory leak in request readline()
> ---------------------------------
>
>                 Key: MODPYTHON-182
>                 URL: http://issues.apache.org/jira/browse/MODPYTHON-182
>             Project: mod_python
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.10, 3.3, 3.2.x
>         Environment: Apache 2.0.55 mpm-worker
>            Reporter: Jim Gallacher
>         Assigned To: Jim Gallacher
>             Fix For: 3.3
>
>
> There is at least one memory leak request.readline(). I'm currently auditing the code so there may well be others.
> I think the leak will only occur when the request body is incompletely read with readline, which is likely an unusual corner case. The following demostrates the leak:
> Consider a request body consisting of:
> '\n'.join([ 'a'*100 for i in xrange(0, 100) ])
> and using this handler:
> def handler(req):
>     # Handler reads 20 lines but request contains 100 lines.
>     # Since the body is not completely read, the buffer allocated
>     # in requestobject.c req_readline is never freed.
>     req.content_type = 'text/plain'
>     count = 0
>     for i in range(0, 20):
>         line = req.readline()
>         count += 1
>     req.write('ok readline_partial: %d lines read' % count)
>     return apache.OK
> With this test setup I'm seeing a leak of approx 10k bytes per request.

-- 
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