New submission from Irit Katriel <iritkatr...@gmail.com>:
This was found while investigating issue44895. It may or may not be the cause of that issue. The script below hangs on a mac (it's an extract from test_exceptions.test_recursion_in_except_handler). ----------- import sys count = 0 def main(): def f(): global count count += 1 try: f() except RecursionError: f() sys.setrecursionlimit(30) try: f() except RecursionError: pass main() print(count) ----------- When I kill it the traceback shows it alternating between the two recursive calls, but not in a regular pattern: ... [snipped a lot] File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ [Previous line repeated 2 more times] RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ [Previous line repeated 1 more time] RecursionError: maximum recursion depth exceeded During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/iritkatriel/src/cpython/tt.py", line 22, in <module> main() ^^^^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 18, in main f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ [Previous line repeated 10 more times] File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 11, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 13, in f f() ^^^ File "/Users/iritkatriel/src/cpython/tt.py", line 7, in f def f(): KeyboardInterrupt ---------- components: Interpreter Core messages: 399599 nosy: iritkatriel priority: normal severity: normal status: open title: interpreter hangs on recursion in both body and handler of a try block type: crash versions: Python 3.11 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue44917> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com