Lazza / RecuperaBit

A tool for forensic file system reconstruction.
GNU General Public License v3.0
517 stars 73 forks source link

RecursionError: maximum recursion depth exceeded #111

Closed anton2920 closed 1 year ago

anton2920 commented 1 year ago

During an attempt to restore data from 1 TiB hard drive, after merging all partitions into one, I got this:

Traceback (most recent call last):
  File "/home/anton/Projects/RecuperaBit/./main.py", line 374, in <module>
    main()
  File "/home/anton/Projects/RecuperaBit/./main.py", line 371, in main
    interpret(cmd, arguments, parts, shorthands, args.outputdir)
  File "/home/anton/Projects/RecuperaBit/./main.py", line 181, in interpret
    logic.recursive_restore(myfile, part, partition_dir)
  File "/home/anton/Projects/RecuperaBit/recuperabit/logic.py", line 259, in recursive_restore
    recursive_restore(child, part, outputdir, make_dirs=False)
  File "/home/anton/Projects/RecuperaBit/recuperabit/logic.py", line 259, in recursive_restore
    recursive_restore(child, part, outputdir, make_dirs=False)
  File "/home/anton/Projects/RecuperaBit/recuperabit/logic.py", line 259, in recursive_restore
    recursive_restore(child, part, outputdir, make_dirs=False)
  [Previous line repeated 4 more times]
  File "/home/anton/Projects/RecuperaBit/recuperabit/logic.py", line 210, in recursive_restore
    part[node.parent].full_path(part) if node.parent is not None
  File "/home/anton/Projects/RecuperaBit/recuperabit/fs/core_types.py", line 97, in full_path
    return os.path.join(parent.full_path(part), self.name)
  File "/home/anton/Projects/RecuperaBit/recuperabit/fs/core_types.py", line 97, in full_path
    return os.path.join(parent.full_path(part), self.name)
  File "/home/anton/Projects/RecuperaBit/recuperabit/fs/core_types.py", line 97, in full_path
    return os.path.join(parent.full_path(part), self.name)
  [Previous line repeated 985 more times]
  File "/home/anton/Projects/RecuperaBit/recuperabit/fs/core_types.py", line 96, in full_path
    parent = part[self.parent]
RecursionError: maximum recursion depth exceeded

Then program crashed.

Lazza commented 1 year ago

Please try to recover them separately instead of merging.

The merge feature should be used with great care because it might lead to unexpected results.

anton2920 commented 1 year ago

I'm sorry, but I've already recovered my data long ago using other utility, so I can't help you in fixing this anymore.