Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jun 2009 15:46:37 -0700
From:      Kip Macy <kmacy@freebsd.org>
To:        Emil Mikulic <emikulic@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: (zfs) panic: lock &arg.lock already initialized
Message-ID:  <3c1674c90906101546l3f6d5654uceadea17c1c5a8a4@mail.gmail.com>
In-Reply-To: <20090610151641.GA15528@dmr.ath.cx>
References:  <20090610151641.GA15528@dmr.ath.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
File a PR and assign it to me.

On Wed, Jun 10, 2009 at 8:16 AM, Emil Mikulic<emikulic@gmail.com> wrote:
> 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 =3D 0
> KDB: enter: panic
> Physical memory: 4049 MB
> Dumping [etc]
>
> (kgdb) where
> [...]
> #9 =A00xffffffff80568c5b in panic (fmt=3DVariable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:558
> #10 0xffffffff8105754e in dsl_dataset_destroy_sync (arg1=3D0xffffff000560=
5c00,
> =A0 =A0tag=3D0xffffff000b68c550, cr=3D0xffffff0005f79e00, tx=3D0xffffff00=
05932680)
> =A0 =A0at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/com=
mon/fs/zfs/dsl_dataset.c:1422
> #11 0xffffffff81059ecb in dsl_sync_task_group_sync (dstg=3D0xffffff000b7b=
9080,
> =A0 =A0tx=3D0xffffff0005932680)
> =A0 =A0at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/com=
mon/fs/zfs/dsl_synctask.c:186
> #12 0xffffffff810599f3 in dsl_pool_sync (dp=3D0xffffff0005606800, txg=3D7=
5028)
> =A0 =A0at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/com=
mon/fs/zfs/dsl_pool.c:316
> #13 0xffffffff810683c5 in spa_sync (spa=3D0xffffff0005549000, txg=3D75028=
)
> =A0 =A0at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/com=
mon/fs/zfs/spa.c:3988
> #14 0xffffffff8107047f in txg_sync_thread (arg=3DVariable "arg" is not av=
ailable.
> )
> =A0 =A0at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/com=
mon/fs/zfs/txg.c:352
> #15 0xffffffff8054179a in fork_exit (
> =A0 =A0callout=3D0xffffffff810701f0 <txg_sync_thread>, arg=3D0xffffff0005=
606800,
> =A0 =A0frame=3D0xffffff81297f4c90) at /usr/src/sys/kern/kern_fork.c:828
> #16 0xffffffff8081b32e in fork_trampoline ()
> =A0 =A0at /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 =A0 =A0static void
> 1418 =A0 =A0dsl_dataset_drain_refs(dsl_dataset_t *ds, void *tag)
> 1419 =A0 =A0{
> 1420 =A0 =A0 =A0 =A0 =A0 =A0struct refsarg arg;
> 1421
> 1422 ---------> mutex_init(&arg.lock, NULL, MUTEX_DEFAULT, NULL); <------=
-----
> 1423 =A0 =A0 =A0 =A0 =A0 =A0cv_init(&arg.cv, NULL, CV_DEFAULT, NULL);
> 1424 =A0 =A0 =A0 =A0 =A0 =A0arg.gone =3D FALSE;
> 1425 =A0 =A0 =A0 =A0 =A0 =A0(void) dmu_buf_update_user(ds->ds_dbuf, ds, &=
arg, &ds->ds_phys,
> 1426 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0dsl_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
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org=
"
>



--=20
When bad men combine, the good must associate; else they will fall one
by one, an unpitied sacrifice in a contemptible struggle.

    Edmund Burke



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3c1674c90906101546l3f6d5654uceadea17c1c5a8a4>