This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test_io logs Exception ignored in: warnings
Type: Stage: resolved
Components: Tests Versions: Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: vstinner
Priority: normal Keywords: patch

Created on 2019-06-10 23:45 by vstinner, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 13954 merged vstinner, 2019-06-11 00:54
PR 13999 closed vstinner, 2019-06-12 02:39
PR 14028 closed vstinner, 2019-06-12 21:24
PR 14029 merged vstinner, 2019-06-12 21:40
PR 14031 merged vstinner, 2019-06-12 22:04
Messages (10)
msg345156 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-10 23:45
bpo-18748 modified io.IOBase finalizer to no longer silence close() exception in develoment and in debug mode.

The commit 472f794a33221ea835a2fbf6c9f12aa2bd66d1b0 fixed a few destructor errors in test_io, but there are still a few:

test_uninitialized (test.test_io.PyBufferedReaderTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 836, in raw
    return self._raw
AttributeError: 'BufferedReader' object has no attribute '_raw'
ok

test_max_buffer_size_removal (test.test_io.PyBufferedWriterTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1299, in close
    with self._write_lock:
AttributeError: 'BufferedWriter' object has no attribute '_write_lock'
ok

test_misbehaved_io (test.test_io.PyBufferedWriterTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1308, in close
    self.flush()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1269, in flush
    self._flush_unlocked()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1285, in _flush_unlocked
    raise OSError("write() returned incorrect number of bytes")
OSError: write() returned incorrect number of bytes
ok

test_uninitialized (test.test_io.PyBufferedWriterTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1299, in close
    with self._write_lock:
AttributeError: 'BufferedWriter' object has no attribute '_write_lock'
ok

test_writer_close_error_on_close (test.test_io.CBufferedRWPairTest) ...
Exception ignored in: <_io.BufferedWriter>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/unittest/case.py", line 611, in _callTestMethod
    method()
ValueError: flush of closed file
ok

test_constructor_max_buffer_size_removal (test.test_io.PyBufferedRWPairTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
AttributeError: 'BufferedRWPair' object has no attribute 'reader'
ok

test_constructor_with_not_readable (test.test_io.PyBufferedRWPairTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
AttributeError: 'BufferedRWPair' object has no attribute 'reader'
ok

test_constructor_with_not_writeable (test.test_io.PyBufferedRWPairTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
AttributeError: 'BufferedRWPair' object has no attribute 'reader'
ok

test_isatty (test.test_io.PyBufferedRWPairTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1300, in close
    if self.raw is None or self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1300, in close
    if self.raw is None or self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1300, in close
    if self.raw is None or self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 814, in close
    if self.raw is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1300, in close
    if self.raw is None or self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'SelectableIsAtty' object has no attribute 'closed'
ok

test_uninitialized (test.test_io.PyBufferedRWPairTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1377, in close
    self.reader.close()
AttributeError: 'BufferedRWPair' object has no attribute 'reader'
ok

test_destructor (test.test_io.CBufferedRandomTest) ...
Exception ignored in: <_io.BufferedRWPair object at 0x7f2f3c5842f0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/support/__init__.py", line 1627, in gc_collect
    gc.collect()
ValueError: flush of closed file

Exception ignored in: <_io.BufferedWriter>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/support/__init__.py", line 1627, in gc_collect
    gc.collect()
ValueError: flush of closed file
ok

test_misbehaved_io (test.test_io.CBufferedRandomTest) ...
Exception ignored in: <_io.BufferedRandom>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/test_io.py", line 2306, in test_misbehaved_io
    BufferedReaderTest.test_misbehaved_io(self)
OSError: Raw stream returned invalid position -123

Exception ignored in: <_io.BufferedRandom>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/test_io.py", line 2307, in test_misbehaved_io
    BufferedWriterTest.test_misbehaved_io(self)
OSError: Raw stream returned invalid position -123
ok

test_write_non_blocking (test.test_io.CBufferedRandomTest) ...
Exception ignored in: <_io.BufferedRandom>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/unittest/case.py", line 611, in _callTestMethod
    method()
io.UnsupportedOperation: seek
ok

test_max_buffer_size_removal (test.test_io.PyBufferedRandomTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1299, in close
    with self._write_lock:
AttributeError: 'BufferedRandom' object has no attribute '_write_lock'
ok

test_misbehaved_io (test.test_io.PyBufferedRandomTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1308, in close
    self.flush()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1269, in flush
    self._flush_unlocked()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1285, in _flush_unlocked
    raise OSError("write() returned incorrect number of bytes")
OSError: write() returned incorrect number of bytes
ok

test_uninitialized (test.test_io.PyBufferedRandomTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1299, in close
    with self._write_lock:
AttributeError: 'BufferedRandom' object has no attribute '_write_lock'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 1299, in close
    with self._write_lock:
AttributeError: 'BufferedRandom' object has no attribute '_write_lock'
ok

test_destructor (test.test_io.PyTextIOWrapperTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/test/test_io.py", line 2817, in close
    l.append(self.getvalue())
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 896, in getvalue
    raise ValueError("getvalue on closed file")
ValueError: getvalue on closed file
ok

test_issue22849 (test.test_io.PyTextIOWrapperTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'

Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
AttributeError: 'F' object has no attribute 'closed'
ok

test_repr (test.test_io.PyTextIOWrapperTest) ...
Exception ignored in: <function IOBase.__del__ at 0x7f2f3c73e4b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 409, in __del__
    self.close()
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2161, in close
    if self.buffer is not None and not self.closed:
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 2169, in closed
    return self.buffer.closed
  File "/home/vstinner/prog/python/master/Lib/_pyio.py", line 840, in closed
    return self.raw.closed
AttributeError: 'NoneType' object has no attribute 'closed'
ok


List of failing tests:

test.test_io.CBufferedRWPairTest.test_writer_close_error_on_close
test.test_io.CBufferedRandomTest.test_destructor
test.test_io.CBufferedRandomTest.test_misbehaved_io
test.test_io.CBufferedRandomTest.test_write_non_blocking
test.test_io.PyBufferedRWPairTest.test_constructor_max_buffer_size_removal
test.test_io.PyBufferedRWPairTest.test_constructor_with_not_readable
test.test_io.PyBufferedRWPairTest.test_constructor_with_not_writeable
test.test_io.PyBufferedRWPairTest.test_isatty
test.test_io.PyBufferedRWPairTest.test_uninitialized
test.test_io.PyBufferedRandomTest.test_max_buffer_size_removal
test.test_io.PyBufferedRandomTest.test_misbehaved_io
test.test_io.PyBufferedRandomTest.test_uninitialized
test.test_io.PyBufferedReaderTest.test_uninitialized
test.test_io.PyBufferedWriterTest.test_max_buffer_size_removal
test.test_io.PyBufferedWriterTest.test_misbehaved_io
test.test_io.PyBufferedWriterTest.test_uninitialized
test.test_io.PyTextIOWrapperTest.test_destructor
test.test_io.PyTextIOWrapperTest.test_issue22849
test.test_io.PyTextIOWrapperTest.test_repr
msg345158 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-10 23:46
See also bpo-36918 (test_urllib) and bpo-37069 (regrtest: log unraisable exceptions and uncaught thread exceptions).
msg345159 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-11 00:18
PR 13952 fix many errors, but not of all them.

test_io.PyBufferedWriterTest.test_misbehaved_io() logs a warning, whereas test_io.CBufferedWriterTest.test_misbehaved_io() doesn't. It seems like _pyio.BufferedWriter lacks bpo-32228 fix.

Extract of the C implementation:

static PyObject *
_bufferedwriter_flush_unlocked(buffered *self)
{
    ...

    if (!VALID_WRITE_BUFFER(self) || self->write_pos == self->write_end)
        goto end;

    /* First, rewind */
    rewind = RAW_OFFSET(self) + (self->pos - self->write_pos);
    if (rewind != 0) {
        n = _buffered_raw_seek(self, -rewind, 1);
        if (n < 0) {
            goto error;
        }
        self->raw_pos -= rewind;
    }
    ...


end:
    /* This ensures that after return from this function,
       VALID_WRITE_BUFFER(self) returns false.

       This is a required condition because when a tell() is called
       after flushing and if VALID_READ_BUFFER(self) is false, we need
       VALID_WRITE_BUFFER(self) to be false to have
       RAW_OFFSET(self) == 0.

       Issue: https://bugs.python.org/issue32228 */
    _bufferedwriter_reset_buf(self);
    Py_RETURN_NONE;

error:
    return NULL;
}
msg345161 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-11 00:49
New changeset 4f6f7c5a611905fb6b81671547f268c226bc646a by Victor Stinner in branch 'master':
bpo-18748: Fix _pyio.IOBase destructor (closed case) (GH-13952)
https://github.com/python/cpython/commit/4f6f7c5a611905fb6b81671547f268c226bc646a
msg345165 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-11 01:11
New changeset b589cef9c4dada2fb84ce0fae5040ecf16d9d5ef by Victor Stinner in branch 'master':
bpo-37223: test_io: silence destructor errors (GH-13954)
https://github.com/python/cpython/commit/b589cef9c4dada2fb84ce0fae5040ecf16d9d5ef
msg345166 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-11 01:11
Once bpo-36918 will be fixed, I will backport changes to Python 3.8.
msg345298 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-12 02:14
Oh. There are still 3 errors in 2 tests:

test_writer_close_error_on_close (test.test_io.CBufferedRWPairTest) ... Exception ignored in: <_io.BufferedWriter>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/unittest/case.py", line 611, in _callTestMethod
    method()
ValueError: flush of closed file
ok

test_destructor (test.test_io.CBufferedRandomTest) ... Exception ignored in: <_io.BufferedRWPair object at 0x7fc9d1c230b0>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/support/__init__.py", line 1627, in gc_collect
    gc.collect()
ValueError: flush of closed file
Exception ignored in: <_io.BufferedWriter>
Traceback (most recent call last):
  File "/home/vstinner/prog/python/master/Lib/test/support/__init__.py", line 1627, in gc_collect
    gc.collect()
ValueError: flush of closed file
ok
msg345416 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-12 21:57
New changeset 913fa1c8245d1cde6edb4254f4fb965cc91786ef by Victor Stinner in branch 'master':
bpo-37223, test_io: silence last 'Exception ignored in:' (GH-14029)
https://github.com/python/cpython/commit/913fa1c8245d1cde6edb4254f4fb965cc91786ef
msg345421 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-12 22:23
New changeset c15a682603a47f5aef5025f6a2e3babb699273d6 by Victor Stinner in branch '3.8':
bpo-37223: test_io: silence destructor errors (GH-14031)
https://github.com/python/cpython/commit/c15a682603a47f5aef5025f6a2e3babb699273d6
msg345423 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-06-12 22:24
Ok, all errors have been fixed in 3.8 and master. I close the issue.
History
Date User Action Args
2022-04-11 14:59:16adminsetgithub: 81404
2019-06-12 22:24:34vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg345423

stage: patch review -> resolved
2019-06-12 22:23:55vstinnersetmessages: + msg345421
2019-06-12 22:04:22vstinnersetpull_requests: + pull_request13895
2019-06-12 21:57:16vstinnersetmessages: + msg345416
2019-06-12 21:40:34vstinnersetpull_requests: + pull_request13893
2019-06-12 21:24:02vstinnersetpull_requests: + pull_request13892
2019-06-12 02:39:57vstinnersetpull_requests: + pull_request13862
2019-06-12 02:14:12vstinnersetmessages: + msg345298
2019-06-11 01:11:41vstinnersetmessages: + msg345166
2019-06-11 01:11:02vstinnersetmessages: + msg345165
2019-06-11 00:54:19vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request13822
2019-06-11 00:49:51vstinnersetmessages: + msg345161
2019-06-11 00:18:18vstinnersetmessages: + msg345159
2019-06-10 23:46:34vstinnersetmessages: + msg345158
2019-06-10 23:45:19vstinnercreate