Author: mattip <[email protected]>
Branch: py3.6
Changeset: r96745:7c2732ad825a
Date: 2019-06-05 05:50 +0000
http://bitbucket.org/pypy/pypy/changeset/7c2732ad825a/

Log:    merge fix-leak-of-file-descriptor-with-_iofile which fixes a
        resource leak

diff --git a/pypy/module/_io/interp_fileio.py b/pypy/module/_io/interp_fileio.py
--- a/pypy/module/_io/interp_fileio.py
+++ b/pypy/module/_io/interp_fileio.py
@@ -256,6 +256,7 @@
         except:
             if not fd_is_own:
                 self.fd = -1
+            self._close(space)
             raise
 
     def _mode(self):
diff --git a/pypy/module/_io/test/test_fileio.py 
b/pypy/module/_io/test/test_fileio.py
--- a/pypy/module/_io/test/test_fileio.py
+++ b/pypy/module/_io/test/test_fileio.py
@@ -57,8 +57,11 @@
 
     def test_open_directory(self):
         import _io
-        import os
-        raises(IOError, _io.FileIO, self.tmpdir, "rb")
+        import os, warnings
+        with warnings.catch_warnings(record=True) as w:
+            warnings.simplefilter('always', ResourceWarning)
+            raises(IOError, _io.FileIO, self.tmpdir, "rb")
+            assert len(w) == 0
         if os.name != 'nt':
             fd = os.open(self.tmpdir, os.O_RDONLY)
             raises(IOError, _io.FileIO, fd, "rb")
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to