disorderfs: FUSE file-deletion quirk

James Addison jay at jp-hosting.net
Tue Jan 21 22:17:35 UTC 2025


Hi folks,

This is a notification about a small quirk in the disorderfs[1]
overlay filesystem, a useful tool for preparing build environments
with varying filesystem behaviours (particularly directory/folder
result ordering).

Unless configured otherwise, FUSE (Filesystem in USErspace)
filesystems such as disorderfs do not delete files from the underlying
filesystem when they are deleted from the overlay.  This can cause
seemingly straightforward tests -- for example, cases that expect
directory contents to be empty after deletion is requested for all
files listed within them -- to fail.

There is a workaround; FUSE provides a 'hard_remove' option that is by
default and typically available as a mount option when an overlay
filesystem is created.  By adding '-o hard_remove' to the mount
command-line, it is possible to request that deletions from the
overlay should propagate immediately to the underlying filesystem.

I'm tempted to suggest a patch either in (1) reprotest (a user of
disorderfs), to enable the mount option -- OR (2) in disorderfs to
opt-in by default -- OR potentially (3) to request that change
upstream in libfuse itself.  Any of these would introduce a small
performance degradation when the option is enabled.  Currently my
preference is leaning towards suggesting that disorderfs should opt-in
by default.

Regards,
James

[1] - https://salsa.debian.org/reproducible-builds/disorderfs


More information about the rb-general mailing list