Date: Sat, 10 Feb 2007 23:08:25 -0600 From: "Matthew D. Fuller" <fullermd@over-yonder.net> To: freebsd-current@freebsd.org Subject: softdep_waitidle: Failed to flush worklist [...] Message-ID: <20070211050825.GA70508@over-yonder.net>
next in thread | raw e-mail | index | archive | help
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@over-yonder.net Systems/Network Administrator | http://www.over-yonder.net/~fullermd/ On the Internet, nobody can hear you scream.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070211050825.GA70508>