From owner-freebsd-current@FreeBSD.ORG Sun Feb 11 05:27:57 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 64F4E16A46F for ; Sun, 11 Feb 2007 05:27:57 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from optimus.centralmiss.com (ns.centralmiss.com [206.156.254.79]) by mx1.freebsd.org (Postfix) with ESMTP id F06BC13C829 for ; Sun, 11 Feb 2007 05:08:26 +0000 (UTC) (envelope-from fullermd@over-yonder.net) Received: from draco.over-yonder.net (adsl-072-148-013-213.sip.jan.bellsouth.net [72.148.13.213]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by optimus.centralmiss.com (Postfix) with ESMTP id 37D0528596 for ; Sat, 10 Feb 2007 23:08:26 -0600 (CST) Received: by draco.over-yonder.net (Postfix, from userid 100) id B0BE661C3A; Sat, 10 Feb 2007 23:08:25 -0600 (CST) Date: Sat, 10 Feb 2007 23:08:25 -0600 From: "Matthew D. Fuller" To: freebsd-current@freebsd.org Message-ID: <20070211050825.GA70508@over-yonder.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Editor: vi X-OS: FreeBSD User-Agent: Mutt/1.5.11-fullermd.3 Subject: softdep_waitidle: Failed to flush worklist [...] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Feb 2007 05:27:57 -0000 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.