Skip to content

pylint 4.0 crashes on server class #2640

@peace-maker

Description

@peace-maker

pylint 4 was released a few days ago and chokes on pwnlib. There's an old issue about it that seems related.
pylint-dev/pylint#9190

I've forced the pylint CI workflow to use a version < 4 in 07f3caa, but the issue should be monitored if we can get pylint 4 to work somehow.

Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/lint/pylinter.py", line 821, in _lint_file
    check_astroid_module(module)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/lint/pylinter.py", line 1053, in check_astroid_module
    retval = self._check_astroid_module(
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/lint/pylinter.py", line 1105, in _check_astroid_module
    walker.walk(node)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/utils/ast_walker.py", line 90, in walk
    self.walk(child)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/utils/ast_walker.py", line 90, in walk
    self.walk(child)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/utils/ast_walker.py", line 90, in walk
    self.walk(child)
  [Previous line repeated 2 more times]
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/utils/ast_walker.py", line 87, in walk
    callback(astroid)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/checkers/base/basic_error_checker.py", line 496, in visit_call
    self._check_inferred_class_is_abstract(inferred, node)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/checkers/base/basic_error_checker.py", line 513, in _check_inferred_class_is_abstract
    abstract_methods = _has_abstract_methods(inferred)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/checkers/base/basic_error_checker.py", line 76, in _has_abstract_methods
    return len(utils.unimplemented_abstract_methods(node)) > 0
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/checkers/utils.py", line 954, in unimplemented_abstract_methods
    mro = reversed(node.mro())
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2857, in mro
    return self._compute_mro(context=context)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2841, in _compute_mro
    mro = base._compute_mro(context=context)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2841, in _compute_mro
    mro = base._compute_mro(context=context)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2841, in _compute_mro
    mro = base._compute_mro(context=context)
  [Previous line repeated 970 more times]
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2835, in _compute_mro
    inferred_bases = list(self._inferred_bases(context=context))
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 2819, in _inferred_bases
    baseobj = _infer_last(stmt, context)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/nodes/scoped_nodes/scoped_nodes.py", line 177, in _infer_last
    for b in arg.infer(context=context.clone()):
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/astroid/context.py", line 131, in clone
    clone = InferenceContext(self.path.copy(), nodes_inferred=self._nodes_inferred)
RecursionError: maximum recursion depth exceeded

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/lint/pylinter.py", line 784, in _lint_files
    self._lint_file(fileitem, module, check_astroid_module)
  File "/opt/hostedtoolcache/Python/3.10.18/x64/lib/python3.10/site-packages/pylint/lint/pylinter.py", line 823, in _lint_file
    raise astroid.AstroidError from e
astroid.exceptions.AstroidError

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions