sahib / rmlint

Extremely fast tool to remove duplicates and other lint from your filesystem
http://rmlint.rtfd.org
GNU General Public License v3.0
1.86k stars 128 forks source link

--replay invocation crashes on Btrfs #617

Open intelfx opened 1 year ago

intelfx commented 1 year ago

version

steps

Original run:

# rmlint -T df,dd -Dj --progress -o summary -o pretty -c sh:handler=clone --hidden --replay rmlint.orig.json /mnt/data/path1 /mnt/data/path2

Replay:

# mv replay.json replay.orig.json
# rmlint -T df,dd -Dj --progress -o summary -o pretty -c sh:handler=clone --hidden --replay rmlint.orig.json /mnt/data/path1 /mnt/data/path2

# Duplicate Directorie(s):
    ls -la '/mnt/data/path1/some/subdir'
    rm -rf '/mnt/data/path2/some/subdir'
**
ERROR:lib/utilities.c:1143:rm_mounts_can_reflink: assertion failed: (dest_part)
Bail out! ERROR:lib/utilities.c:1143:rm_mounts_can_reflink: assertion failed: (dest_part)
ERROR: Aborting due to a fatal error. (signal received: Aborted)
ERROR: Please file a bug report (See rmlint -h)
escape0707 commented 1 year ago

I think this bug causes #621 and breaks the GUI app, too.

cebtenzzre commented 1 year ago

@intelfx I think you pasted the wrong command for your original run. It's the same as your replay command and doesn't produce any JSON or shell output.

Also, I'm having trouble reproducing this issue, so it'd be helpful to know a little more information. Does it crash on unmodified develop? Does it crash on unmodified master? Does it happen for any pair of directories on btrfs, or are there other requirements? I'm aware of an issue on master with --replay and reflink-capable filesystems but I believe it was silently fixed by 3f75ae609398de6ac27be24fc092a40241e1bd5c on develop.