softdep_waitidle: Failed to flush worklist [...]
Eric Anderson
anderson at freebsd.org
Mon Feb 12 04:37:41 UTC 2007
On 02/10/07 23:08, Matthew D. Fuller wrote:
> 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
Aren't you putting the filesystem on top of the label here? Shouldn't
you do something like:
newfs -U /dev/md10a
instead?
> # 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...
>
>
>
Eric
More information about the freebsd-current
mailing list