From owner-freebsd-current@FreeBSD.ORG Wed Jun 10 15:16:44 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 571831065673 for ; Wed, 10 Jun 2009 15:16:44 +0000 (UTC) (envelope-from emikulic@gmail.com) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by mx1.freebsd.org (Postfix) with ESMTP id E169F8FC18 for ; Wed, 10 Jun 2009 15:16:43 +0000 (UTC) (envelope-from emikulic@gmail.com) Received: from ppp154-240.static.internode.on.net ([150.101.154.240]) by ipmail04.adl2.internode.on.net with ESMTP; 11 Jun 2009 00:46:41 +0930 Received: by ppp154-240.static.internode.on.net (Poo-fix, from userid 1001) id 4C83A5C45; Thu, 11 Jun 2009 01:16:41 +1000 (EST) Date: Thu, 11 Jun 2009 01:16:41 +1000 From: Emil Mikulic To: freebsd-current@freebsd.org Message-ID: <20090610151641.GA15528@dmr.ath.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.19 (2009-01-05) Subject: (zfs) panic: lock &arg.lock 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: Wed, 10 Jun 2009 15:16:44 -0000 On doing "zfs destroy" of a snapshot, I got this panic: Unread portion of the kernel message buffer: panic: lock &arg.lock already initialized cpuid = 0 KDB: enter: panic Physical memory: 4049 MB Dumping [etc] (kgdb) where [...] #9 0xffffffff80568c5b in panic (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:558 #10 0xffffffff8105754e in dsl_dataset_destroy_sync (arg1=0xffffff0005605c00, tag=0xffffff000b68c550, cr=0xffffff0005f79e00, tx=0xffffff0005932680) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c:1422 #11 0xffffffff81059ecb in dsl_sync_task_group_sync (dstg=0xffffff000b7b9080, tx=0xffffff0005932680) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c:186 #12 0xffffffff810599f3 in dsl_pool_sync (dp=0xffffff0005606800, txg=75028) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c:316 #13 0xffffffff810683c5 in spa_sync (spa=0xffffff0005549000, txg=75028) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c:3988 #14 0xffffffff8107047f in txg_sync_thread (arg=Variable "arg" is not available. ) at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c:352 #15 0xffffffff8054179a in fork_exit ( callout=0xffffffff810701f0 , arg=0xffffff0005606800, frame=0xffffff81297f4c90) at /usr/src/sys/kern/kern_fork.c:828 #16 0xffffffff8081b32e in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:552 #17 0x0000000000000000 in ?? () #18 0x0000000000000000 in ?? () #19 0x0000000000000001 in ?? () #20 0x0000000000000000 in ?? () [more question marks...] (kgdb) frame 10 (kgdb) list 1417 static void 1418 dsl_dataset_drain_refs(dsl_dataset_t *ds, void *tag) 1419 { 1420 struct refsarg arg; 1421 1422 ---------> mutex_init(&arg.lock, NULL, MUTEX_DEFAULT, NULL); <----------- 1423 cv_init(&arg.cv, NULL, CV_DEFAULT, NULL); 1424 arg.gone = FALSE; 1425 (void) dmu_buf_update_user(ds->ds_dbuf, ds, &arg, &ds->ds_phys, 1426 dsl_dataset_refs_gone); I'm running svn r193609 on dual-core amd64, kernel config is GENERIC minus WITNESS and WITNESS_SKIPSPIN. Is there any other info I can provide to help debug this? --Emil