From owner-freebsd-current@FreeBSD.ORG Thu Aug 9 05:27:56 2007 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 133C316A417 for ; Thu, 9 Aug 2007 05:27:56 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay02.pair.com (relay02.pair.com [209.68.5.16]) by mx1.freebsd.org (Postfix) with SMTP id B010D13C442 for ; Thu, 9 Aug 2007 05:27:55 +0000 (UTC) (envelope-from pho@holm.cc) Received: (qmail 83482 invoked from network); 9 Aug 2007 05:27:53 -0000 Received: from 83.95.197.164 (HELO peter.osted.lan) (83.95.197.164) by relay02.pair.com with SMTP; 9 Aug 2007 05:27:53 -0000 X-pair-Authenticated: 83.95.197.164 Received: from peter.osted.lan (localhost.osted.lan [127.0.0.1]) by peter.osted.lan (8.13.6/8.13.6) with ESMTP id l795Rq5F060010; Thu, 9 Aug 2007 07:27:52 +0200 (CEST) (envelope-from pho@peter.osted.lan) Received: (from pho@localhost) by peter.osted.lan (8.13.6/8.13.6/Submit) id l795RqrS060009; Thu, 9 Aug 2007 07:27:52 +0200 (CEST) (envelope-from pho) Date: Thu, 9 Aug 2007 07:27:52 +0200 From: Peter Holm To: Kostik Belousov Message-ID: <20070809052751.GA59917@peter.osted.lan> References: <20070808195955.GA76077@rot26.obsecurity.org> <20070809034842.GN2738@deviant.kiev.zoral.com.ua> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070809034842.GN2738@deviant.kiev.zoral.com.ua> User-Agent: Mutt/1.4.2.1i Cc: davidxu@freebsd.org, current@freebsd.org, Kris Kennaway Subject: Re: panic: lock "aiomtx" already initialized 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: Thu, 09 Aug 2007 05:27:56 -0000 On Thu, Aug 09, 2007 at 06:48:42AM +0300, Kostik Belousov wrote: > On Wed, Aug 08, 2007 at 03:59:55PM -0400, Kris Kennaway wrote: > > From stress2's random syscall test: > > > > db> wh > > Tracing pid 45777 tid 100465 td 0xc61b7000 > > kdb_enter(c077f50d,2,c0782352,ed0fab84,2,...) at kdb_enter+0x33 > > panic(c0782352,c0788b88,c5e1107c,20000,0,...) at panic+0xed > > lock_init(c5e1107c,c07c67c4,c0788b88,0,20000) at lock_init+0x8c > > mtx_init(c5e1107c,c0788b88,0,0,79400d31,...) at mtx_init+0x9f > > aio_init_aioinfo(c61c4ab0,c057d463,c07e6520,9579c960,31a964,...) at aio_init_aioinfo+0x4b > > aio_aqueue(c61b7000,79400d31,0,2,1,...) at aio_aqueue+0x8d > > oaio_read(c61b7000,ed0facf8,4,c078503a,c07c2250,...) at oaio_read+0x32 > > syscall(ed0fad38) at syscall+0x14f > > Xint0x80_syscall() at Xint0x80_syscall+0x20 > > --- syscall (318, FreeBSD ELF32, oaio_read), eip = 0x280c0969, esp = 0xbfbfe5f0, ebp = 0xbfbfe638 --- > > db> x/s 0xc0782352 > > 0xc0782352: lock "%s" %p already initialized > > db> x/s 0xc0788b88 > > 0xc0788b88: aiomtx > > db> show lock 0xc5e1107c > > class: sleep mutex > > name: aiomtx > > flags: {DEF} > > state: {UNOWNED} > > > > This patch should fix the problem: > > diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c > index 7610da8..47580b6 100644 > --- a/sys/kern/vfs_aio.c > +++ b/sys/kern/vfs_aio.c > @@ -719,6 +719,7 @@ restart: > } > AIO_UNLOCK(ki); > taskqueue_drain(taskqueue_aiod_bio, &ki->kaio_task); > + mtx_destroy(&ki->kaio_mtx); > uma_zfree(kaio_zone, ki); > p->p_aioinfo = NULL; > } > > It seems that you shall use a lot of quickly exit()ing processes all of > them using aio to reliable reproduce the problem. I'll try to see if I can reproduce the panic, later on today. - Peter