bpo-18748: _pyio.IOBase emits unraisable exception by vstinner · Pull Request #13512 · python/cpython

vstinner

In development (-X dev) mode and in a debug build, IOBase finalizer
of the _pyio module now logs the exception if the close() method
fails. The exception is ignored silently by default in release build.

test_io: test_error_through_destructor() now uses
support.catch_unraisable_exception() rather than capturing stderr.

https://bugs.python.org/issue18748

In development (-X dev) mode and in a debug build, IOBase finalizer
of the _pyio module now logs the exception if the close() method
fails. The exception is ignored silently by default in release build.

test_io: test_error_through_destructor() now uses
support.catch_unraisable_exception() rather than capturing stderr.

@vstinner vstinner changed the title bpo-36918: _pyio.IOBase emits unraisable exception bpo-18748: _pyio.IOBase emits unraisable exception

May 22, 2019

@vstinner

Ah, test_io failed on Travis CI. Example:

FAIL: test_error_through_destructor (test.test_io.CBufferedReaderTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/build/python/cpython/Lib/test/test_io.py", line 1107, in test_error_through_destructor
    self.assertIsNotNone(cm.unraisable)
AssertionError: unexpectedly None

@ionelmc ionelmc mannequin mentioned this pull request

Apr 10, 2022