markfasheh / duperemove

Tools for deduping file systems
GNU General Public License v2.0
832 stars 82 forks source link

Crashes with ERROR: hash-tree.h:80 #265

Closed syrop closed 3 years ago

syrop commented 3 years ago

duperemove crashes each time I run it. This is the full output:

wiktor@wiktor:~/Documents/Projekty/ITSG$ time duperemove -dhr /mnt/zbiornik --hashfile /home/wiktor/hashfile
Warning: The hash file format in Duperemove master branch is under development and may change.
If the changes are not backwards compatible, you will have to re-create your hash file.
Gathering file list...
Adding files from database for hashing.
Loading only duplicated hashes from hashfile.
Hashing completed. Using 4 threads to calculate duplicate extents. This may take some time.
ERROR: hash-tree.h:80
[stack trace follows]
duperemove(print_stack_trace+0x32) [0x55c1a52950e2]
duperemove(+0xd4fc) [0x55c1a52974fc]
duperemove(+0xd87c) [0x55c1a529787c]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x86384) [0x7f2290c86384]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x837f1) [0x7f2290c837f1]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x9450) [0x7f22906f6450]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f22909ead53]
Aborted (core dumped)

real    1m39.682s
user    1m16.470s
sys 0m37.836s
syrop commented 3 years ago

The situation was fixed my creating a new hashfile.

The program actually talks about creating a new file:

Warning: The hash file format in Duperemove master branch is under development and may change. If the changes are not backwards compatible, you will have to re-create your hash file.

I don't know if it's the same. I would like, instead of a crash, a more gentle message, like "please create a new hashfile".

lorddoskias commented 3 years ago

Could you reproduce this crash but when duperemove is compiled with debugging information since It's not possible to determine what exactly went wrong?

syrop commented 3 years ago

It no longer crashes. I can't reproduce it.

lorddoskias commented 3 years ago

In this case I will close the issue, just bear in mind that in the future in order for me to debug a crashing issue it would be best if you could share steps to reproduce or at least share the strack but with duperemove compiled with -g flag so that the full function names can be derived.