From owner-freebsd-fs@FreeBSD.ORG Mon Aug 21 13:44:51 2006 Return-Path: X-Original-To: freebsd-fs@freebsd.org Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A582A16A4DE; Mon, 21 Aug 2006 13:44:51 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from fw.zoral.com.ua (fw.zoral.com.ua [213.186.206.134]) by mx1.FreeBSD.org (Postfix) with ESMTP id C347B43D7E; Mon, 21 Aug 2006 13:44:30 +0000 (GMT) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by fw.zoral.com.ua (8.13.4/8.13.4) with ESMTP id k7LDiLFi055858 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 21 Aug 2006 16:44:21 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.13.6/8.13.6) with ESMTP id k7LDiMxG082713; Mon, 21 Aug 2006 16:44:22 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.13.6/8.13.6/Submit) id k7LDiL4M082704; Mon, 21 Aug 2006 16:44:21 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 21 Aug 2006 16:44:21 +0300 From: Kostik Belousov To: Eric Anderson Message-ID: <20060821134421.GC56637@deviant.kiev.zoral.com.ua> References: <20060817170314.GA17490@peter.osted.lan> <20060818164903.GF20768@deviant.kiev.zoral.com.ua> <20060818.202001.74745664.Tor.Egge@cvsup.no.freebsd.org> <20060821.132151.41668008.Tor.Egge@cvsup.no.freebsd.org> <44E9B722.2040407@centtech.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="WplhKdTI2c8ulnbP" Content-Disposition: inline In-Reply-To: <44E9B722.2040407@centtech.com> User-Agent: Mutt/1.4.2.2i X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on fw.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=1.9 required=5.0 tests=DNS_FROM_RFC_ABUSE, SPF_NEUTRAL,UNPARSEABLE_RELAY autolearn=no version=3.1.4 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.1.4 (2006-07-25) on fw.zoral.com.ua Cc: freebsd-fs@freebsd.org, tegge@freebsd.org Subject: Re: Deadlock between nfsd and snapshots. X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Aug 2006 13:44:51 -0000 --WplhKdTI2c8ulnbP Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Aug 21, 2006 at 08:37:38AM -0500, Eric Anderson wrote: > On 08/21/06 08:21, Tor Egge wrote: > >I wrote: > > > >>The deadlock indicates that one or more of IN_CHANGE, IN_MODIFIED or > >>IN_UPDATE was set on the inode, indicating a write operation > >>(e.g. VOP_WRITE(), VOP_RENAME(), VOP_CREATE(), VOP_REMOVE(), VOP_LINK(), > >>VOP_SYMLINK(), VOP_SETATTR(), VOP_MKDIR(), VOP_RMDIR(), VOP_MKNOD()) th= at=20 > >>was > >>not protected by vn_start_write() or vn_start_secondary_write(). > > > >The most common "write" operation was probably VOP_GETATTR(). > > > >ufs_itimes(), called from ufs_getattr(), might set the IN_MODIFIED inode= =20 > >flag > >if IN_ACCESS is set on the inode even if neither IN_CHANGE nor IN_UPDATE= is > >set, transitioning the inode flags into a state where ufs_inactive() cal= ls=20 > >the > >blocking variant of vn_start_secondary_write(). > > > >calling ufs_itimes() with only a shared vnode lock might cause unsafe=20 > >accesses > >to the inode flags. Setting of IN_ACCESS at the end of ffs_read() and > >ffs_extread() might also be unsafe. If DIRECTIO is enabled then O_DIREC= T=20 > >reads > >might not even attempt to set the IN_ACCESS flag. >=20 > Does this mean that setting the noatime flag on mount would dodge this? On the server, yes. --WplhKdTI2c8ulnbP Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFE6bi1C3+MBN1Mb4gRAi0AAKCAMHYgGLM2NiwbeACHYWYcf7KGBACdHaFr bsTADBtxT8QDEPAA9iT0YT0= =ic3w -----END PGP SIGNATURE----- --WplhKdTI2c8ulnbP--