File remove problem

Matthew D. Fuller fullermd at over-yonder.net
Fri Nov 30 09:44:33 PST 2007


On Fri, Nov 30, 2007 at 05:00:21PM +1100 I heard the voice of
Bruce Evans, and lo! it spake thus:
> 
> Oops, this is missing a rm, and doesn't work with it.

Yes, I haven't been able to reliably reproduce it without rm'ing
stuff; mtree just gave me a nice easy way to make a bunch of stuff for
testing.  I mostly saw it with /usr/ports, which I keep mounted r/o
except when building (which means the last thing before remounting is
generally rm'ing a big tree).  It has happened with / too, where I'd
remount to edit something in /etc, but vim may do a rename() of a temp
file instead of editing in place, so maybe it's still removing an
inode.


Last year, it used to not cause the softdep_waitidle messages and
prevent the fs from being remounted.  Instead, it would give an error
like:

hostname kernel: /: update error: blocks 28 files 2

and WOULD remount it, and even set the clean flag, but would still
leave turds lying around that would need a manual fsck to clean up
(fsck -p obviously would completely skip it, since it was marked
clean).  It was early this year that it moved from that annoying to
the "locked fs" crippling variant.  (n.b.: I don't have any real
evidence that it's a mutation of the same problem, rather than two
different ones, aside from the trigger condition apparently being the
same, and the newer completely replacing the older.)


> It takes a reboot per test.

Yah   :(

I've been retrying it every few months post-upgrade, when I could just
reboot the mess away.  And otherwise just being very careful to sync a
bunch of times, and wait a few minutes before `mount -u -oro`ing
stuff.  Rather a pain.


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.


More information about the freebsd-fs mailing list