ROX-Filer: overwriting a file on an USB drive truncates it
Dave
freebsd01 at dgmm.net
Sat Dec 1 14:15:35 UTC 2018
On Thursday, 29 November 2018 00:23:12 GMT Markus Hoenicka wrote:
> Hi,
>
> I've recently upgraded my laptop to:
>
> FreeBSD wombat 11.2-RELEASE-p4 FreeBSD 11.2-RELEASE-p4 #0: Thu Sep 27
> 08:16:24 UTC 2018
> root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
>
> I've also updated all installed packages.
>
> I keep running into a nasty file copying bug that does not seem to have
> occurred previously. Result is that overwriting an existing file on an
> USB drive causes this file to be truncated instead of being overwritten,
> which means data loss.
>
> How to reproduce:
>
> After logging in, I start an Xfce session manually:
>
> startxfce4 --with-ck-launch
>
> mount stick in an xterm, as per handbook. Note that I've set up user
> mounting of USB drives:
>
> mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /stick/markus
>
> open source directory (on hard drive) in a ROX-Filer window
> open target directory (on usb drive) in another ROX-Filer window
>
> drag&drop a file from source over an existing copy on target
>
> dialog box asks if it is ok to overwrite which I acknowledge
>
> ROX-Filer window shows the correct file size immediately after copying,
> and after rescanning the directory. ls -al /stick/markus/targetdir also
> shows the correct file size at this point.
>
> umount /stick/markus fails because the device is busy. fstat shows that
> the ROX-Filer process keeps it busy
>
> now I can either use umount -f /stick/markus to forcibly unmount the
> stick, or I log out of the X session and then use umount /stick/markus
> without problems
>
> then mount the stick again as above, or try on a different computer
>
> ls -al /stick/markus/targetdir shows a target file size of zero.
>
> It appears that the new data are never flushed to the disk. I've even
> tried to run umount /stick/markus before umount -f /stick/markus, as
> this should perform a flush according to the umount man page. This bug
> appears to be specific to ROX-Filer. I could not reproduce this using
> Thunar, or plain ol' cp. This bug also appears to be specific to USB
> target drives, as I cannot reproduce this when overwriting files on the
> hard drive. I do not think the problem is related to a faulty file
> system on the target drive as I can reproduce this with just about any
> thumbdrive and external disk lying around.
>
> I've been using ROX-Filer for ages, but I've noticed that neither
> mailing lists nor bug tracker seem to be active. Is it about time to
> move on?
>
> thanks
> Markus
I've seen similar issues with various filemanagers over the years
including Konquerer and Dolphin. I always just assumed it was a
feature of the way filemanagers worked so always closed the file
manager windows linked to the mounted device before unmounting it
or at least select a directory that is not part of the mounted
device.
I never tried doing a forced umount while the filemanager had a
link to the mounted device.
More information about the freebsd-questions
mailing list