From owner-freebsd-bugs@FreeBSD.ORG Wed Nov 12 23:10:01 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AF9A1065672 for ; Wed, 12 Nov 2008 23:10:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 500DB8FC19 for ; Wed, 12 Nov 2008 23:10:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id mACNA1GX053384 for ; Wed, 12 Nov 2008 23:10:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id mACNA1Om053383; Wed, 12 Nov 2008 23:10:01 GMT (envelope-from gnats) Resent-Date: Wed, 12 Nov 2008 23:10:01 GMT Resent-Message-Id: <200811122310.mACNA1Om053383@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Tim Bishop Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6DA9106568E for ; Wed, 12 Nov 2008 23:08:51 +0000 (UTC) (envelope-from tdb@paladin.sixth.bishnet.net) Received: from carrick.bishnet.net (carrick.bishnet.net [IPv6:2a01:348:132::1]) by mx1.freebsd.org (Postfix) with ESMTP id 932898FC16 for ; Wed, 12 Nov 2008 23:08:51 +0000 (UTC) (envelope-from tdb@paladin.sixth.bishnet.net) Received: from paladin.sixth.bishnet.net ([2a01:348:131:1:20e:cff:fe7f:ced1]) by carrick.bishnet.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.66 (FreeBSD)) (envelope-from ) id 1L0OpI-0008ff-HG for FreeBSD-gnats-submit@freebsd.org; Wed, 12 Nov 2008 23:08:44 +0000 Received: from tdb by paladin.sixth.bishnet.net with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1L0OpD-00079O-0L for FreeBSD-gnats-submit@freebsd.org; Wed, 12 Nov 2008 23:08:39 +0000 Message-Id: Date: Wed, 12 Nov 2008 23:08:39 +0000 From: Tim Bishop Sender: "T.D.Bishop" To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: kern/128832: System deadlock when using mksnap_ffs X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Tim Bishop List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Nov 2008 23:10:01 -0000 >Number: 128832 >Category: kern >Synopsis: System deadlock when using mksnap_ffs >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Nov 12 23:10:00 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Tim Bishop >Release: FreeBSD 7.1-PRERELEASE amd64 >Organization: >Environment: System: FreeBSD paladin 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #9: Wed Nov 12 18:47:56 GMT 2008 tdb@paladin:/usr/obj/usr/src/sys/PALADIN amd64 Filesystem details: Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/da0s1a 2078881084 925352744 987217854 48% /u2 It's NFS exported and it's mounted from a RAID card using the twa driver. >Description: When running mksnap_ffs on the above filesystem the system completely freezes up. The console is unresponsive, and even after a couple of hours there is still no response. I guess it deadlocked, but it may just be being incredibly slow. Some discussion on freebsd-stable: http://lists.freebsd.org/pipermail/freebsd-stable/2008-November/046524.html >How-To-Repeat: paladin# cd /u2/.snap paladin# mksnap_ffs /u2 test.1 >Fix: This fix was provided to me in response to my post on freebsd-stable. It's against 7-STABLE. I can see what it's doing, but don't understand the bigger picture enough to know if it's sensible. --- sys/ufs/ffs/ffs_snapshot.c.orig 2008-11-12 18:40:53.000000000 +0000 +++ sys/ufs/ffs/ffs_snapshot.c 2008-11-12 18:42:19.000000000 +0000 @@ -345,6 +345,8 @@ if (error) goto out; bawrite(nbp); + if (cg % 10 == 0) + ffs_syncvnode(vp, MNT_WAIT); } /* * Copy all the cylinder group maps. Although the @@ -366,6 +368,8 @@ goto out; error = cgaccount(cg, vp, nbp, 1); bawrite(nbp); + if (cg % 10 == 0) + ffs_syncvnode(vp, MNT_WAIT); if (error) goto out; } >Release-Note: >Audit-Trail: >Unformatted: