Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jul 2016 10:58:07 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        avg@FreeBSD.org
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: zfs solaris assert panic in 11.0-ALPHA5 r302256
Message-ID:  <201607181758.u6IHw7h6047690@gw.catspoiler.org>
In-Reply-To: <831f819b-68bb-5425-a4cf-47a51a136ddf@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 18 Jul, Andriy Gapon wrote:
> On 18/07/2016 20:40, Don Lewis wrote:
>> On 18 Jul, Andriy Gapon wrote:
>>> On 08/07/2016 07:13, Don Lewis wrote:
>>>> My package buiding machine just crashed with this panic during a
>>>> poudriere run:
>>>>
>>>> panic: solaris assert: (dn->dn_phys->dn_nlevels == 0 && db->db_level == 0) || dn->dn_phys->dn_nlevels > db->db_level || dn->dn_next_nlevels[txgoff] > db->db_level || dn->dn_next_nlevels[(tx->tx_txg-1) & TXG_MASK] > db->db_level || dn->dn_next_nlevels[(tx->tx_txg
>>>
>>> Don,
>>>
>>> do you have a crash dump?
>>> It would be interesting to see a pretty-print of dn, dn->dn_phys, db and
>>> tx in the frame where the assert is hit.
>> 
>> I do.  Unfortunately kgdb reports that the values of dn and db were
>> optimized out.
>> 
> 
> Well... You can try to use kgdb7111 from ports, perhaps it would work
> better. Also, it's often possible to find values of wanted variables by
> finding a relevant value that's not optimized out and then following
> through pointers, etc to get to the right values.  in other cases it's
> possible to get the values by examining the disassembly and values of
> registers.

This is with kgdb from ports:

[snip]
#13 0xffffffff824be23a in assfail (
    a=0x80 <error: Cannot access memory at address 0x80>, 
    f=0xfffffe085a435d90 "", l=0)
    at /usr/src/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:81
#14 0xffffffff8215b928 in dbuf_dirty (db=<optimized out>, tx=<optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c:1232
#15 0xffffffff8215c0e4 in dbuf_dirty (db=<optimized out>, tx=<optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c:1383
#16 0xffffffff8215c0e4 in dbuf_dirty (db=<optimized out>, tx=<optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c:1383
#17 0xffffffff82166fd9 in dmu_write_uio_dnode (dn=<optimized out>, 
    uio=<optimized out>, size=<optimized out>, tx=<optimized out>)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:1193
#18 0xffffffff82166e92 in dmu_write_uio_dbuf (zdb=0xfffff806bacc0b88, 
    uio=0xfffffe085a4368f0, size=65536, tx=0xfffff803a4043600)
    at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:1244
#19 0xffffffff82224bac in zfs_write (vp=<optimized out>, uio=<optimized out>, 
    ioflag=<optimized out>, cr=<optimized out>, ct=<optimized out>)
[snip]

There's not a lot for me to get traction with ...

This is also not a very repeatable thing for me.  I've only had it
happen once even though this machine is kept very busy building ports.




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