From owner-freebsd-current@FreeBSD.ORG Thu Aug 9 03:48:52 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 AEFF016A419 for ; Thu, 9 Aug 2007 03:48:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from relay02.kiev.sovam.com (relay02.kiev.sovam.com [62.64.120.197]) by mx1.freebsd.org (Postfix) with ESMTP id 42FC513C469 for ; Thu, 9 Aug 2007 03:48:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from [89.162.146.170] (helo=skuns.kiev.zoral.com.ua) by relay02.kiev.sovam.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.67) (envelope-from ) id 1IIz0y-000FCe-WA; Thu, 09 Aug 2007 06:48:50 +0300 Received: from deviant.kiev.zoral.com.ua (root@[10.1.1.148]) by skuns.kiev.zoral.com.ua (8.14.1/8.14.1) with ESMTP id l793miaG041286 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 9 Aug 2007 06:48:44 +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.14.1/8.14.1) with ESMTP id l793mh8N085456; Thu, 9 Aug 2007 06:48:43 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.1/8.14.1/Submit) id l793mgvB085455; Thu, 9 Aug 2007 06:48:42 +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: Thu, 9 Aug 2007 06:48:42 +0300 From: Kostik Belousov To: Kris Kennaway Message-ID: <20070809034842.GN2738@deviant.kiev.zoral.com.ua> References: <20070808195955.GA76077@rot26.obsecurity.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="c6397Mob2532IpCX" Content-Disposition: inline In-Reply-To: <20070808195955.GA76077@rot26.obsecurity.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: ClamAV version 0.91.1, clamav-milter version 0.91.1 on skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=failed version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on skuns.kiev.zoral.com.ua X-Scanner-Signature: 49b91432ac2f6f50aab85e53d3752740 X-DrWeb-checked: yes X-SpamTest-Envelope-From: kostikbel@gmail.com X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1363 [August 8 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Method: none X-SpamTest-Rate: 0 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release Cc: current@freebsd.org, davidxu@freebsd.org 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 03:48:52 -0000 --c6397Mob2532IpCX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 08, 2007 at 03:59:55PM -0400, Kris Kennaway wrote: > From stress2's random syscall test: >=20 > 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_i= nit_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 =3D 0x280c0969, esp =3D = 0xbfbfe5f0, ebp =3D 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} >=20 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 =3D NULL; } It seems that you shall use a lot of quickly exit()ing processes all of them using aio to reliable reproduce the problem. --c6397Mob2532IpCX Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGuo6ZC3+MBN1Mb4gRAjsfAKDI+umRA61EubRGFYYZt4eYRWvjAwCgrtnH UBJ8BVYvl3w5uub2RzaYdYU= =yjON -----END PGP SIGNATURE----- --c6397Mob2532IpCX--