From owner-freebsd-stable@FreeBSD.ORG Wed Jan 4 13:26:41 2006 Return-Path: X-Original-To: freebsd-stable@FreeBSD.org Delivered-To: freebsd-stable@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D299316A41F for ; Wed, 4 Jan 2006 13:26:41 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0767743D60 for ; Wed, 4 Jan 2006 13:26:40 +0000 (GMT) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.13.3/8.13.3) with ESMTP id k04DQMfu009506; Wed, 4 Jan 2006 05:26:26 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200601041326.k04DQMfu009506@gw.catspoiler.org> Date: Wed, 4 Jan 2006 05:26:22 -0800 (PST) From: Don Lewis To: gcr+freebsd-stable@tharned.org In-Reply-To: <20060103195956.L798@nc8000.tharned.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Cc: freebsd-stable@FreeBSD.org, freebsd@McKusick.COM, kris@obsecurity.org Subject: Re: Recurring problem: processes block accessing UFS file system X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jan 2006 13:26:41 -0000 On 3 Jan, Greg Rivers wrote: > On Tue, 3 Jan 2006, Don Lewis wrote: >> Pid 87117 is playing with buf 0xdc76fe30 which is not locked, and is >> sleeping on the buf's b_xflags member. It looks like 87117 is waiting >> for an in-progress write to complete. There are a large number of other >> sendmail processes waiting in this same place. >> >> How about "show buffer 0xdc76fe30"? >> > > db> show buffer 0xdc76fe30 > buf at 0xdc76fe30 > b_flags = 0x200000a0 > b_error = 0, b_bufsize = 16384, b_bcount = 16384, b_resid = 0 > b_bufobj = (0xc8985610), b_data = 0xe1d6b000, b_blkno = 365086368 > lockstatus = 0, excl count = 0, excl owner 0xffffffff > b_npages = 4, pages(OBJ, IDX, PA): (0xc8984108, 0x2b858d4, 0xa8de1000),(0xc8984108, 0x2b858d5, 0xa8c62000),(0xc8984108, 0x2b858d6, 0xa8de3000),(0xc8984108, 0x2b858d7, 0xa8e64000) > db> Hmn, it would be nice if DDB printed b_vflags so that we would know the state of BV_BKGRDINPROG and BV_BKGRDWAIT. As it is, we don't know if the background write got lost or if we missed the wakeup. At this point, I think it might be easier to do post-mortem debugging on a core file with kgdb and kernel.debug. Unless there is an obvious race condition, I suspect this will be a tough slog.