From owner-svn-src-all@FreeBSD.ORG Mon Feb 25 07:13:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id BF626F9; Mon, 25 Feb 2013 07:13:38 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from smtp4.clear.net.nz (smtp4.clear.net.nz [203.97.37.64]) by mx1.freebsd.org (Postfix) with ESMTP id 706B2164; Mon, 25 Feb 2013 07:13:38 +0000 (UTC) Received: from mxin3-orange.clear.net.nz (lb2-srcnat.clear.net.nz [203.97.32.237]) by smtp4.clear.net.nz (CLEAR Net Mail) with ESMTP id <0MIR00HJSLA7LZ20@smtp4.clear.net.nz>; Mon, 25 Feb 2013 20:13:34 +1300 (NZDT) Received: from 202-0-48-19.paradise.net.nz (HELO bender) ([202.0.48.19]) by smtpin32.paradise.net.nz with ESMTP; Mon, 25 Feb 2013 20:13:32 +1300 Date: Mon, 25 Feb 2013 20:13:13 +1300 From: Andrew Turner Subject: Re: svn commit: r247116 - in head/sys: fs/nfs fs/nfsclient kern nfsclient sys tools In-reply-to: <201302211902.r1LJ2o5T033708@svn.freebsd.org> To: John Baldwin Message-id: <20130225201313.2050da18@bender> MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit References: <201302211902.r1LJ2o5T033708@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Feb 2013 07:13:38 -0000 On Thu, 21 Feb 2013 19:02:50 +0000 (UTC) John Baldwin wrote: > Author: jhb > Date: Thu Feb 21 19:02:50 2013 > New Revision: 247116 > URL: http://svnweb.freebsd.org/changeset/base/247116 > > Log: > Further refine the handling of stop signals in the NFS client. The > changes in r246417 were incomplete as they did not add explicit > calls to sigdeferstop() around all the places that previously passed > SBDRY to _sleep(). In addition, nfs_getcacheblk() could trigger a > write RPC from getblk() resulting in sigdeferstop() recursing. > Rather than manually deferring stop signals in specific places, > change the VFS_*() and VOP_*() methods to defer stop signals for > filesystems which request this behavior via a new VFCF_SBDRY flag. > Note that this has to be a VFC flag rather than a MNTK flag so that > it works properly with VFS_MOUNT() when the mount is not yet fully > constructed. For now, only the NFS clients are set this new flag in > VFS_SET(). > A few other related changes: > - Add an assertion to ensure that TDF_SBDRY doesn't leak to > userland. > - When a lookup request uses VOP_READLINK() to follow a symlink, > mark the request as being on behalf of the thread performing the > lookup (cnp_thread) rather than using a NULL thread pointer. This > causes NFS to properly handle signals during this VOP on an > interruptible mount. > > PR: kern/176179 > Reported by: Russell Cattelan (sigdeferstop() recursion) > Reviewed by: kib > MFC after: 1 month This change is causing init to crash for me on armv6. I'm netbooting a PandaBoard and it appears init is receiving a SIGABRT before it gets into main(). Do you have any idea where I could look to track down why it is doing this? Andrew