crash when parsing profile
ellperro opened this issue · comments
code:
fatmodule.py:
import time
#mimics a module which takes a long time to import
time.sleep(1)
demo2.py:
import time
def b():
import fatmodule
time.sleep(.1)
b()
python3 -m cProfile -o prof2 ./demo2.py
tuna2 prof2
Traceback (most recent call last):
File "/home/bart/.local/bin/tuna", line 8, in <module>
sys.exit(main())
File "/home/bart/.local/lib/python3.8/site-packages/tuna/cli.py", line 32, in main
start_server(args.infile, args.browser, args.port)
File "/home/bart/.local/lib/python3.8/site-packages/tuna/main.py", line 44, in start_server
data = read(prof_filename)
File "/home/bart/.local/lib/python3.8/site-packages/tuna/main.py", line 23, in read
return read_runtime_profile(filename)
File "/home/bart/.local/lib/python3.8/site-packages/tuna/_runtime_profile.py", line 88, in read_runtime_profile
"children": [populate(root, None) for root in roots],
File "/home/bart/.local/lib/python3.8/site-packages/tuna/_runtime_profile.py", line 88, in <listcomp>
"children": [populate(root, None) for root in roots],
File "/home/bart/.local/lib/python3.8/site-packages/tuna/_runtime_profile.py", line 47, in populate
c = [populate(child, key) for child in children[key]]
File "/home/bart/.local/lib/python3.8/site-packages/tuna/_runtime_profile.py", line 47, in <listcomp>
c = [populate(child, key) for child in children[key]]
File "/home/bart/.local/lib/python3.8/site-packages/tuna/_runtime_profile.py", line 47, in populate
c = [populate(child, key) for child in children[key]]
...
RecursionError: maximum recursion depth exceeded in comparison
Thanks for the excellent reports! I won't have time to look into it immediately, but I'll get to it as soon as I can.
Fixed now. Thanks again for the report.