maximum recursion depth exceeded in 1050 string join
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 190
- Avg merge
- 8m
- Merged PRs (30d)
- 13
Description
Original report by jayvdb (@jayvdb?) on Launchpad:
Running current pyflakes on astroid results in maximum recursion depth exceeded on a test module.
$ pyflakes astroid/tests/testdata/python2/data/joined_strings.py
Traceback (most recent call last):
File "/usr/bin/pyflakes", line 9, in <module>
load_entry_point('pyflakes==1.0.0', 'console_scripts', 'pyflakes')()
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/api.py", line 172, in main
warnings = checkRecursive(args, reporter)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/api.py", line 129, in checkRecursive
warnings += checkPath(sourcePath, reporter)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/api.py", line 96, in checkPath
return check(codestr, filename, reporter)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/api.py", line 57, in check
w = checker.Checker(tree, filename)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 294, in __init__
self.handleChildren(tree)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 567, in handleChildren
self.handleNode(node, tree)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 609, in handleNode
handler(node)
...
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 609, in handleNode
handler(node)
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 566, in handleChildren
for node in iter_child_nodes(tree, omit=omit):
File "/usr/lib/python2.7/site-packages/pyflakes-1.0.0-py2.7.egg/pyflakes/checker.py", line 80, in iter_child_nodes
if isinstance(field, ast.AST):
RuntimeError: maximum recursion depth exceeded while calling a Python object
Setting sys.setrecursionlimit(2500) fixes the problem
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure by running pyflakes on astroid/tests/testdata/python2/data/joined_strings.py. Start in pyflakes/checker.py, especially iter_child_nodes and handleChildren, which appear in the traceback. Done means the file no longer raises a recursion-depth error without relying on a higher recursion limit, with the relevant tests passing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100