New submission from Pablo Galindo Salgado <pablog...@gmail.com>:
Minimal reproducer: ./python -m test test__xxsubinterpreters -m test_custom___reduce__ -R : 0:00:00 load avg: 3.20 Run tests sequentially 0:00:00 load avg: 3.20 [1/1] test__xxsubinterpreters beginning 9 repetitions 123456789 ......... test__xxsubinterpreters leaked [1486, 1484, 1484, 1484] references, sum=5938 test__xxsubinterpreters leaked [399, 398, 398, 398] memory blocks, sum=1593 test__xxsubinterpreters failed == Tests result: FAILURE == 1 test failed: test__xxsubinterpreters Total duration: 2.2 sec Bisecting points to: commit a1d9e0accd33af1d8e90fc48b34c13d7b07dcf57 Author: Eric Snow <ericsnowcurren...@gmail.com> Date: Thu May 7 08:56:01 2020 -0600 bpo-32604: [_xxsubinterpreters] Propagate exceptions. (GH-19768) (Note: PEP 554 is not accepted and the implementation in the code base is a private one for use in the test suite.) If code running in a subinterpreter raises an uncaught exception then the "run" call in the calling interpreter fails. A RunFailedError is raised there that summarizes the original exception as a string. The actual exception type, __cause__, __context__, state, etc. are all discarded. This turned out to be functionally insufficient in practice. There is a more helpful solution (and PEP 554 has been updated appropriately). This change adds the exception propagation behavior described in PEP 554 to the _xxsubinterpreters module. With this change a copy of the original exception is set to __cause__ on the RunFailedError. For now we are using "pickle", which preserves the exception's state. We also preserve the original __cause__, __context__, and __traceback__ (since "pickle" does not preserve those). https://bugs.python.org/issue32604 Lib/test/test__xxsubinterpreters.py | 301 ++++++++- Modules/_xxsubinterpretersmodule.c | 1139 +++++++++++++++++++++++++++++++---- 2 files changed, 1317 insertions(+), 123 deletions(-) bisect run success ---------- components: Interpreter Core messages: 368411 nosy: eric.snow, pablogsal, vstinner priority: normal severity: normal status: open title: test__xxsubinterpreters leaked [1486, 1484, 1484, 1484] references type: behavior versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40556> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com