[Patches] [ python-Patches-661796 ] BZ2File leaking fd and memory
SourceForge.net
noreply@sourceforge.net
Fri, 03 Jan 2003 11:22:48 -0800
Patches item #661796, was opened at 2003-01-03 14:22
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=661796&group_id=5470
Category: Modules
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Neal Norwitz (nnorwitz)
Assigned to: Nobody/Anonymous (nobody)
Summary: BZ2File leaking fd and memory
Initial Comment:
The attached patch fixes BZ2File() leaking the fd and
PyFileObject* info (name, read ahead buffer) when an
object is deleted.
I'm not sure the patch fixes these problems in the best
way. It exposes most of the implementation from
fileobject.c::file_dealloc() through a private API
_PyFile_Dealloc().
BZ2File derives from PyFileObject.
Make sure the file: 'empty' exists and do:
from bz2 import *
A simple test which demonstrates the problem is:
for i in range(100000): o = BZ2File('empty') ; del o
Without the patch, you quickly get:
IOError: [Errno 24] Too many open files: 'empty'
You can modify this to:
for i in range(100000): o = BZ2File('empty') ;
o.close() ; del o
Now you can see the memory leaks.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=661796&group_id=5470