wellbehavedsoftware / btrfs-dedupe

MIT License
31 stars 5 forks source link

index out of bounds #5

Open M-Mommsen opened 5 years ago

M-Mommsen commented 5 years ago

Any suggestions what is happening here ?


Hashed contents of 629159 out of 636515 files, 7356 remaining Hashed contents of 636511 files with 5 errors, ignored 629843 with fresh hashes Extent hash: /var/www/vhosts/redacted.url/.cache/dconf/user thread 'main' panicked at 'index out of bounds: the len is 128 but the index is 18446744073709551615', /build/rustc-1.24.1+dfsg1/src/liballoc/vec.rs:1551:10 stack backtrace: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49 1: std::panicking::default_hook::{{closure}} at src/libstd/sys_common/backtrace.rs:68 2: std::panicking::rust_panic_with_hook at src/libstd/panicking.rs:397 at src/libstd/panicking.rs:577 3: std::panicking::begin_panic at src/libstd/panicking.rs:538 4: std::panicking::begin_panic_fmt at src/libstd/panicking.rs:522 5: core::panicking::panic_fmt at src/libstd/panicking.rs:498 6: core::panicking::panic_bounds_check at src/libcore/panicking.rs:58 7: btrfs::linux::operations::fiemap::get_file_extent_map 8: btrfs_dedupe::commands::dedupe_command::dedupe_command 9: btrfs_dedupe::main 10: std::rt::lang_start::{{closure}} 11: main 12: __libc_start_main 13:

M-Mommsen commented 4 years ago

I was able to narrow it down to btrfs::get_file_extent_map_for_path failing for a 1 byte file. I removed this file and up to now the error seems to be gone. Maybe someone is able to change the extent_hasher to skip broken files (or whatever the cause) and instead just skip the file(s)