Issue42651
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.
Created on 2020-12-16 08:02 by xxm, last changed 2022-04-11 14:59 by admin. This issue is now closed.
Messages (6) | |||
---|---|---|---|
msg383118 - (view) | Author: Xinmeng Xia (xxm) | Date: 2020-12-16 08:02 | |
================= import traceback def foo(): traceback.print_exc() foo() foo() ================ Try running the above program, the interpreter is crashed with the error message like the following: Fatal Python error: Cannot recover from stack overflow. NoneType: None NoneType: None NoneType: None NoneType: None ... NoneType: None NoneType: None NoneType: <unprintable NoneType object> NoneType: None NoneType: None ... NoneType: None NoneType: None NoneType: None Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow. Python runtime state: initialized Current thread 0x00007fab0bdda700 (most recent call first): File "/usr/local/python310/lib/python3.10/traceback.py", line 155 in _some_str File "/usr/local/python310/lib/python3.10/traceback.py", line 515 in __init__ File "/usr/local/python310/lib/python3.10/traceback.py", line 103 in print_exception File "/usr/local/python310/lib/python3.10/traceback.py", line 163 in print_exc File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 4 in foo File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo ... File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo File "/home/xxm/Desktop/nameChanging/myerror/test1.py", line 5 in foo ... Aborted (core dumped) |
|||
msg383249 - (view) | Author: Ronald Oussoren (ronaldoussoren) * ![]() |
Date: 2020-12-17 15:31 | |
This might be related to #42500 |
|||
msg383253 - (view) | Author: Xinmeng Xia (xxm) | Date: 2020-12-17 16:40 | |
In issue#36272, they discuss a bug in logging module. They show an example which is similar as this one. So I think I think there might be a similar bug in traceback module. |
|||
msg383267 - (view) | Author: Steve Stagg (stestagg) | Date: 2020-12-17 21:45 | |
Confirmed that bpo-42500 fixes this traceback, in commit 4e7a69bdb6 Parent commit: user@obsidian ~/t/f/cpython (master)> git checkout 93a0ef7 Note: switching to '93a0ef7'. HEAD is now at 93a0ef7647 Correct return type in Modules/_ssl.c::sslmodule_legacy (GH-23609) user@obsidian ~/t/f/cpython ((93a0ef76…))> ../test.sh + make distclean + CFLAGS=-O0 + ./configure --prefix=/home/user/prefix --exec-prefix=/home/user/prefix --cache-file=../config.cache --with-pydebug --without-ensurepip + CFLAGS=-O0 + make -j8 install /home/user/cpython/Lib/runpy.py:111: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ __import__(pkg_name) /home/user/cpython/Lib/runpy.py:111: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ __import__(pkg_name) ++ realpath /home/user/prefix/include/python3.10d/ + INCLUDE_DIR=/home/user/prefix/include/python3.10d + set +e + PYTHONHOME=/home/user/prefix + /home/user/prefix/bin/python3 ../test.py NoneType: None ... NoneType: None Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow. Python runtime state: initialized Current thread 0x00007f483d4bd740 (most recent call first): File "/home/user/prefix/lib/python3.10/traceback.py", line 165 in _some_str File "/home/user/prefix/lib/python3.10/traceback.py", line 524 in __init__ File "/home/user/prefix/lib/python3.10/traceback.py", line 113 in print_exception File "/home/user/prefix/lib/python3.10/traceback.py", line 173 in print_exc File "/home/user/cpython/../test.py", line 4 in foo ... ../test.sh: line 33: 50081 Aborted (core dumped) PYTHONHOME=$PREFIX $EPREFIX/bin/python3 ../test.py + [[ 134 -eq 139 ]] + exit 0 After fix merged: user@obsidian ~/t/f/cpython ((93a0ef76…)) [1]> git checkout 4e7a69bdb6 Previous HEAD position was 93a0ef7647 Correct return type in Modules/_ssl.c::sslmodule_legacy (GH-23609) HEAD is now at 4e7a69bdb6 bpo-42500: Fix recursion in or after except (GH-23568) user@obsidian ~/t/f/cpython ((4e7a69bd…))> ../test.sh + make distclean + CFLAGS=-O0 + ./configure --prefix=/home/user/prefix --exec-prefix=/home/user/prefix --cache-file=../config.cache --with-pydebug --without-ensurepip + CFLAGS=-O0 + make -j8 install /home/user/cpython/Lib/runpy.py:111: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ __import__(pkg_name) /home/user/cpython/Lib/runpy.py:111: PendingDeprecationWarning: lib2to3 package is deprecated and may not be able to parse Python 3.10+ __import__(pkg_name) ++ realpath /home/user/prefix/include/python3.10d/ + INCLUDE_DIR=/home/user/prefix/include/python3.10d + set +e + PYTHONHOME=/home/user/prefix + /home/user/prefix/bin/python3 ../test.py NoneType: None ... NoneType: None Traceback (most recent call last): File "/home/user/prefix/lib/python3.10/traceback.py", line 165, in _some_str return str(value) RecursionError: maximum recursion depth exceeded while calling a Python object During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/user/cpython/../test.py", line 7, in <module> foo() File "/home/user/cpython/../test.py", line 5, in foo foo() File "/home/user/cpython/../test.py", line 5, in foo foo() File "/home/user/cpython/../test.py", line 5, in foo foo() [Previous line repeated 989 more times] File "/home/user/cpython/../test.py", line 4, in foo traceback.print_exc() File "/home/user/prefix/lib/python3.10/traceback.py", line 173, in print_exc print_exception(*sys.exc_info(), limit=limit, file=file, chain=chain) File "/home/user/prefix/lib/python3.10/traceback.py", line 113, in print_exception for line in TracebackException( File "/home/user/prefix/lib/python3.10/traceback.py", line 632, in format yield from self.format_exception_only() File "/home/user/prefix/lib/python3.10/traceback.py", line 580, in format_exception_only yield _format_final_exc_line(stype, self._str) File "/home/user/prefix/lib/python3.10/traceback.py", line 156, in _format_final_exc_line valuestr = _some_str(value) File "/home/user/prefix/lib/python3.10/traceback.py", line 167, in _some_str return '<unprintable %s object>' % type(value).__name__ RecursionError: maximum recursion depth exceeded while calling a Python object + [[ 1 -eq 139 ]] + exit 0 |
|||
msg383268 - (view) | Author: Steve Stagg (stestagg) | Date: 2020-12-17 21:46 | |
Sorry, previous should have read "Fixes the abort" |
|||
msg383575 - (view) | Author: Xinmeng Xia (xxm) | Date: 2020-12-22 08:26 | |
Thank you very much, looking forward to the new Python version. Could you please kindly change the resolution into fixed and close this issue? |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:59:39 | admin | set | github: 86817 |
2020-12-22 08:32:24 | ronaldoussoren | set | status: open -> closed superseder: crash with unbounded recursion in except statement resolution: fixed stage: resolved |
2020-12-22 08:26:36 | xxm | set | messages: + msg383575 |
2020-12-17 21:46:19 | stestagg | set | messages: + msg383268 |
2020-12-17 21:45:21 | stestagg | set | nosy:
+ stestagg messages: + msg383267 |
2020-12-17 16:40:45 | xxm | set | messages: + msg383253 |
2020-12-17 15:31:06 | ronaldoussoren | set | nosy:
+ ronaldoussoren messages: + msg383249 |
2020-12-17 06:44:33 | xxm | set | title: Title: Recursive traceback crashes Python Interpreter -> Recursive traceback crashes Python Interpreter |
2020-12-16 08:02:15 | xxm | create |