Crash running pylint from the command line
drawal1 opened this issue · 2 comments
drawal1 commented
When parsing the py file
Command used
pylint a.py
Pylint output
pylint crashed with a ``AstroidError`` and with the following stacktrace:
Traceback (most recent call last):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 90, in inner
yield next(generator)
^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 44, in wrapped
if context.push(node):
^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/checkers/utils.py", line 1370, in safe_infer
for inferred in infer_gen:
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 170, in infer
for i, result in enumerate(self._infer(context=context, **kwargs)):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 103, in inner
yield from generator
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
for res in _func(node, context, **kwargs):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 177, in _infer_stmts
for inf in stmt.infer(context=context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 170, in infer
for i, result in enumerate(self._infer(context=context, **kwargs)):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 103, in inner
yield from generator
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
for res in _func(node, context, **kwargs):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 177, in _infer_stmts
for inf in stmt.infer(context=context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 170, in infer
for i, result in enumerate(self._infer(context=context, **kwargs)):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 103, in inner
yield from generator
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 49, in wrapped
for res in _func(node, context, **kwargs):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/node_classes.py", line 1764, in _infer
yield from callee.infer_call_result(
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 329, in infer_call_result
for res in node.infer_call_result(caller, context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 329, in infer_call_result
for res in node.infer_call_result(caller, context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 329, in infer_call_result
for res in node.infer_call_result(caller, context):
[Previous line repeated 951 more times]
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/bases.py", line 326, in infer_call_result
for node in self._proxied.igetattr("__call__", context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2524, in igetattr
inferred._proxied.getattr("__get__", context)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2428, in getattr
values += self._metaclass_lookup_attribute(name, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2452, in _metaclass_lookup_attribute
attrs.update(set(cls_attributes))
^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2459, in _get_attribute_from_metaclass
attrs = cls.getattr(name, context=context, class_context=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2428, in getattr
values += self._metaclass_lookup_attribute(name, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2448, in _metaclass_lookup_attribute
metaclass = self.metaclass(context=context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2740, in metaclass
return self._find_metaclass(context=context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2720, in _find_metaclass
klass = self.declared_metaclass(context=context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2692, in declared_metaclass
for baseobj in base.infer(context=context):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/nodes/node_ng.py", line 170, in infer
for i, result in enumerate(self._infer(context=context, **kwargs)):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/astroid/decorators.py", line 99, in inner
raise InferenceError(
^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/lint/pylinter.py", line 787, in _lint_file
check_astroid_module(module)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/lint/pylinter.py", line 1016, in check_astroid_module
retval = self._check_astroid_module(
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/lint/pylinter.py", line 1068, in _check_astroid_module
walker.walk(node)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/utils/ast_walker.py", line 94, in walk
self.walk(child)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/utils/ast_walker.py", line 94, in walk
self.walk(child)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/utils/ast_walker.py", line 94, in walk
self.walk(child)
[Previous line repeated 1 more time]
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/utils/ast_walker.py", line 91, in walk
callback(astroid)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/checkers/deprecated.py", line 94, in visit_attribute
self.check_deprecated_attribute(node)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/checkers/deprecated.py", line 215, in check_deprecated_attribute
inferred_expr = safe_infer(node.expr)
^^^^^^^^^^^^^^^^^^^^^
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/checkers/utils.py", line 1392, in safe_infer
raise AstroidError from e
astroid.exceptions.AstroidError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/lint/pylinter.py", line 751, in _lint_files
self._lint_file(fileitem, module, check_astroid_module)
File "/home/drawal/miniconda3/envs/xray/lib/python3.11/site-packages/pylint/lint/pylinter.py", line 789, in _lint_file
raise astroid.AstroidError from e
astroid.exceptions.AstroidError
Expected behavior
No crash.
Pylint version
pylint 3.1.0
astroid 3.1.0
Python 3.11.8 (main, Feb 26 2024, 21:39:34) [GCC 11.2.0]
OS / Environment
linux (Linux)
Pierre-Sassoulas commented
Will be fixed in astroid 3.2.1 from pylint-dev/astroid#2432, we need to release that in pylint.
jacobtylerwalls commented
Duplicate of #9139