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.85k stars 128 forks source link

Using `--replay` to merge `rmlint.json` output files causes a `json_object_get_boolean_member: assertion 'node != NULL' failed` error spam #637

Open DevJake opened 8 months ago

DevJake commented 8 months ago

As per the docs, it is possible to use the --replay command to merge multiple existing rmlint.json files together, producing a new rmlint.replay.json file containing their merged contents.

When executing the following command: rmlint --replay --replay ./Modding/rmlint.json --replay ./Datasets/rmlint.json

The terminal is spammed with the following message: json_object_get_boolean_member: assertion 'node != NULL' failed

Seemingly once for every entry in each rmlint.json file, before continuing on to merging the two files successfully. This even occurs when replaying only one file, such as with rmlint --replay --replay ./Modding/rmlint.json.

For reference, I am running Windows 10, but executing the command from WSL, using Ubuntu. lsb_release -a from WSL gives me:

Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

And rmlint --version gives me:

version 2.10.2 compiled: Oct 31 2023 at [07:42:40] "Ludicrous Lemur" (rev 0ccca5f0)
compiled with: +mounts +nonstripped +fiemap +sha512 +bigfiles +intl +replay +xattr +btrfs-support

My input is that rmlint might be attempting to read the node/inode value of a file, which it assumed would exist as the initial rmlint commands used (rmlint --xattr --progress ./, ran from inside each directory as mentioned earlier) also ran from WSL/Ubuntu. However, when merging outputs via --replay, a discrepancy between how Windows and Ubuntu handles/represents files causes these error outputs.

From what I can tell, the merging is still successful, just that the expected output during the 'discovery' phase of rmlint's working is instead replaced with this message being spammed.

image

During this spam output, the process does not respond to any ctrl+C inputs, and must be force-quit with ctrl+\.

Thanks in advance for any help with this -- let me know if I can provide any more information!