softdep_waitidle: Failed to flush worklist [...]
Matthew D. Fuller
fullermd at over-yonder.net
Sun Feb 11 05:27:57 UTC 2007
So, I have a lot of my filesystems (like /) mounted read-only, which
means I occasionally have to remount them to change stuff. For a long
time, I had an issue where, if I remounted them too quickly after
making changes that needed to be sync'd, the remount wouldn't fully
sync them and would leave turds lying around the fs requiring a manual
fsck to clean up, even though it would mark the fs clean. That was
rather annoying and scary.
Last time I updated -CURRENT (~Nov), it stopped doing that; it instead
moved on to much freakier occurances where it would lock the
filesystem mounted (still usable, but stuck). I've mentioned this
once or twice, but today I updated to current -CURRENT, and got a
chance to take my system offline to characterize it.
This is trivially reproducible, and rather scary. Following is a
script with comments I can use to cause it at will. If you don't like
having a mounted and indestructible filesystem hanging around your
system, don't run it.
#!/bin/sh -ex
# Make file
rm -f /tmp/fs
dd if=/dev/zero of=/tmp/fs bs=1m count=20
# Make vnode
mdconfig -a -t vnode -f /tmp/fs -u 10
# Make the filesystem
bsdlabel -w md10 auto
newfs -U /dev/md10
# Mount
mount /dev/md10 /mnt
# This tree is big enough to trigger it
mtree -deU -f /etc/mtree/BSD.usr.dist -p /mnt >> /dev/null
# Sync up, just for sport
sync ; sync ; sync
# Now blow it away
rm -rf /mnt/*
# Now, if we did this, it would work OK. I THINK this actually failed
# last time, but with a few quick tries it always seems to work here
# now.
#umount /mnt
# But when I do this...
mount -u -o ro /mnt
# BOOM. In syslog and on console, I get "softdep_waitidle: Failed to
# flush worklist for 0xc33ac538". The filesystem is still mounted
# r/w. I can't mount it r/o. I can't umount it, or umount -f it.
# Every try just repeats the same softdep message. The sync on reboot
# bitches just the same. I did this to /usr/ports a month or two ago,
# and could still use it just fine up until tonite's reboot, but I
# really wanted to be able to unmount it...
--
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-current
mailing list