New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TracebackException(capture_locals=True) may fail with RecursionError #73405
Comments
I'm using Python 3.5.2 to be precise. I have code that is roughly equivalent to: import sys
import traceback
def handle_exception(exc_type, exc_value, exc_traceback):
traceback.TracebackException(exc_type, exc_value, exc_traceback, capture_locals=True)
sys.excepthook = handle_exception For one of the clients the following error happened: Traceback (most recent call last):
File "...", line 222, in ...
File "...", line 160, in ...
File "...", line 878, in ...
File ":/traceback.py", line 463, in __init__
File ":/traceback.py", line 474, in __init__
File ":/traceback.py", line 352, in extract
File ":/traceback.py", line 257, in __init__
File ":/traceback.py", line 257, in <genexpr>
File ":/ctypes/__init__.py", line 354, in __repr__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
File ":/ctypes/__init__.py", line 360, in __getattr__
File ":/ctypes/__init__.py", line 365, in __getitem__
RecursionError: maximum recursion depth exceeded |
Could you please provide a script that reproduces an issue? Seems the repr of uninitialized CDLL instance is used. It causes an infinite recursion in attempt to resolve not set private attributes (_name, _handle, _FuncPtr). |
I was not able to reproduce it. The origin "unhandeled" exception happens after ctypes.cdll.LoadLibrary fails to load a library: Traceback (most recent call last):
File "...", line 852, in ...
File ":/ctypes/__init__.py", line 425, in LoadLibrary
File ":/ctypes/__init__.py", line 347, in __init__
OSError: [WinError 126] 找不到指定的模組 Then we raise our own exception. |
Proposed patch fixes an infinite recursion in a repr of uninitialized CDLL instance. |
New changeset d9a64d00a439 by Serhiy Storchaka in branch '3.5': New changeset d9539a5c2315 by Serhiy Storchaka in branch '2.7': New changeset 17ca7c4dd583 by Serhiy Storchaka in branch '3.6': New changeset 0503024831ad by Serhiy Storchaka in branch 'default': |
Misc/NEWS
so that it is managed by towncrier #552Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: