Date: Sun, 11 Feb 2007 22:37:36 -0600 From: Eric Anderson <anderson@freebsd.org> To: "Matthew D. Fuller" <fullermd@over-yonder.net> Cc: freebsd-current@freebsd.org Subject: Re: softdep_waitidle: Failed to flush worklist [...] Message-ID: <45CFEF10.5050605@freebsd.org> In-Reply-To: <20070211050825.GA70508@over-yonder.net> References: <20070211050825.GA70508@over-yonder.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?45CFEF10.5050605>