Date: Sun, 02 Dec 2018 02:02:14 +0100 From: Markus Hoenicka <markus.hoenicka@mhoenicka.de> To: freebsd01@dgmm.net Cc: freebsd-questions@freebsd.org Subject: Re: ROX-Filer: overwriting a file on an USB drive truncates it Message-ID: <66bd7ea687255a2b5b95637579dcf032@mhoenicka.de> In-Reply-To: <5081512.8gLySxXtyI@amd.asgard.uk> References: <4ee20fc51b13465edcec6d8456be7cf0@mhoenicka.de> <5081512.8gLySxXtyI@amd.asgard.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 2018-12-01 14:36, schrieb Dave: > 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@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. > > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to > "freebsd-questions-unsubscribe@freebsd.org" Hi Dave, thanks for the input. In fact I did close the ROX-Filer windows before trying to unmount the stick. I just forgot that I had a ROX panel running which shares the same process as the file manager windows. Therefore the process kept the stick busy even after closing the file manager windows. I've removed the panel and tried again. Mount stick, copy file over existing file on stick between two ROX-Filer windows, close both windows, check there is no ROX process, check file size with ls -al (still correct at this point), unmount stick, mount it again - zero byte length. Same test with cp succeeds. It feels kinda scary if a no longer existing file manager process affects the state of a file on a stick - the medusa touch??. Fun fact: there is no such problem with ROX-Filer on my Debian box. Both use the same version 2.11. Looks like I'll have to switch to some other file manager for the time being. Any suggestions? I'll be happy to provide additional debug info if someone wants to take a stab at it - this is unfortunately above my head. best regards, Markus -- Markus Hoenicka http://www.mhoenicka.de AQ score 38
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?66bd7ea687255a2b5b95637579dcf032>