New submission from Xinmeng Xia <xi...@smail.nju.edu.cn>:
In issue 42500, recursive calls in "Try-except" are resolved. This PR has fixed the crashes of some programs, such as program 1. And the core dump error is replaced with RecursiveError. However, program 2 will not report a RecursiveError. The program will fall into an infinite loop. Even "Ctrl C" cannot stop the infinite loop. I try to track the execution of this program and insert "print" information(see program 3). The output seems random in execution between try branch and except branch! I think this is a new bug after fixing 42500. I believe the program should also return RecursiveError. Program 1 =========================== def foo(): try: 1/0 except: foo() foo() ================================ Program 2 ================================ def foo(): try: foo() except: foo() foo() ================================ Program 3 ================================ def foo(): try: print("a") foo() except: print("b") foo() foo() ================================ Output for program3( unexpected infinite random loop. ): ......bbaaaabbabbaabbabbaaabbabbaabbabbaaaaaaaabbabbaabbabbaaabbabbaabbabbaaaabbabbaabbabbaaabbabbaabbabbaaaaabbabbaabbabbaaabbabbaabbabbaaaabbabbaabbabbaaabbabbaabbabbaaaaaabbabbaabbabbaaabbabbaabbabbaaaabb...... >>python -V Python 3.10.0a4 ---------- components: Interpreter Core messages: 385171 nosy: xxm priority: normal severity: normal status: open title: Random and infinite loop in dealing with recursion error for "try-except " type: behavior versions: Python 3.10 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue42951> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com