Pawel Jakub Dawidek
2010-Aug-03 23:41 UTC
[zfs-code] assert: !POINTER_IS_VALID(dn->dn_objset)
Hi. I triggered the panic from the subject with most recent ZFS on FreeBSD and I wonder if this is a problem in OpenSolaris as well. The dn_objset pointer is invalidated in dnode_destroy(): POINTER_INVALIDATE(&dn->dn_objset); It is checked for being invalid in dnode_create(): dnode_t *dn = kmem_cache_alloc(dnode_cache, KM_SLEEP); ASSERT(!POINTER_IS_VALID(dn->dn_objset)); So it does makes sense, but only when dnode was used already in the past. Will that work for first allocation where memory is filled with unknown data? I can''t find that kmem_cache_alloc() fills entire buffer with something that will pass this assertion, but maybe I haven''t looked close enough? -- Pawel Jakub Dawidek http://www.wheelsystems.com pjd at FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 196 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/zfs-code/attachments/20100804/e20fc8a8/attachment.bin>