solaris assert triggered after panic in ZFS at mount time

Alexander Leidinger Alexander at leidinger.net
Fri Jul 13 11:38:08 UTC 2018


Hi,

This is with r336194.

I have a dataset which panics the machine at mount time (during reboot  
after a panic):
---snip---
panic: solaris assert: dmu_object_claim(zfsvfs->z_os, obj,  
DMU_OT_PLAIN_FILE_CONTENTS, 0, obj_type, bonuslen, tx) == 0 (0x11 ==  
0x0), file:  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c,  
line: 819
cpuid = 2
time = 1531477050
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe009ab62a00
vpanic() at vpanic+0x1a3/frame 0xfffffe009ab62a60
panic() at panic+0x43/frame 0xfffffe009ab62ac0
assfail3() at assfail3+0x2c/frame 0xfffffe009ab62ae0
zfs_mknode() at zfs_mknode+0x1a1/frame 0xfffffe009ab62f30
zfs_freebsd_create() at zfs_freebsd_create+0x56f/frame 0xfffffe009ab63000
VOP_CREATE_APV() at VOP_CREATE_APV+0xd3/frame 0xfffffe009ab63030
zfs_replay_create() at zfs_replay_create+0x60b/frame 0xfffffe009ab63250
zil_replay_log_record() at zil_replay_log_record+0x215/frame  
0xfffffe009ab633a0
zil_parse() at zil_parse+0x2b5/frame 0xfffffe009ab635a0
zil_replay() at zil_replay+0xec/frame 0xfffffe009ab63600
zfsvfs_setup() at zfsvfs_setup+0xb5/frame 0xfffffe009ab63630
zfs_mount() at zfs_mount+0x72f/frame 0xfffffe009ab637c0
vfs_domount() at vfs_domount+0x734/frame 0xfffffe009ab639e0
vfs_donmount() at vfs_donmount+0x807/frame 0xfffffe009ab63a90
sys_nmount() at sys_nmount+0x50/frame 0xfffffe009ab63ac0
amd64_syscall() at amd64_syscall+0x263/frame 0xfffffe009ab63bf0
fast_syscall_common() at fast_syscall_common+0x101/frame 0xfffffe009ab63bf0
--- syscall (378, FreeBSD ELF64, sys_nmount), rip = 0x800369b3a, rsp =  
0x7fffffffca98, rbp = 0x7fffffffcb10 ---


230             __asm("movq %%gs:%1,%0" : "=r" (td)
(kgdb) #0  __curthread () at ./machine/pcpu.h:230
#1  doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:366
#2  0xffffffff80485e11 in kern_reboot (howto=260)
     at /usr/src/sys/kern/kern_shutdown.c:446
#3  0xffffffff804863f3 in vpanic (fmt=<optimized out>, ap=0xfffffe009ab62aa0)
     at /usr/src/sys/kern/kern_shutdown.c:863
#4  0xffffffff80486443 in panic (fmt=<unavailable>)
     at /usr/src/sys/kern/kern_shutdown.c:790
#5  0xffffffff817c524c in assfail3 (a=<unavailable>, lv=<unavailable>,
     op=<unavailable>, rv=<unavailable>, f=<unavailable>, l=<optimized out>)
     at /usr/src/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:91
#6  0xffffffff81445641 in zfs_mknode (dzp=0xfffff8007644fc60,
     vap=0xfffffe009ab630f8, tx=0xfffff8019fcbbb00, cr=0xfffff80002068000,
     flag=0, zpp=0xfffffe009ab62fb8, acl_ids=0xfffffe009ab62f58)
     at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c:817
#7  0xffffffff81485b1f in zfs_create (
     excl=<error reading variable: Cannot access memory at address 0x0>,
     mode=<error reading variable: Cannot access memory at address 0x0>,
     dvp=<optimized out>, name=<optimized out>, vap=<optimized out>,
     vpp=<optimized out>, cr=<optimized out>, td=<optimized out>)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:1883
#8  zfs_freebsd_create (ap=<optimized out>)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:4995
#9  0xffffffff807c16f3 in VOP_CREATE_APV (vop=<optimized out>,
     a=0xfffffe009ab63098) at vnode_if.c:263
#10 0xffffffff8147c4bb in VOP_CREATE (dvp=<optimized out>, vpp=0x0,
     cnp=0xffffffff8082c59a, vap=0x1a400000001) at ./vnode_if.h:109
#11 zfs_replay_create (arg1=<optimized out>, arg2=<optimized out>,
     byteswap=<optimized out>)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c:505
#12 0xffffffff8144e9d5 in zil_replay_log_record (zilog=0xfffff80048f54c00,
     lr=0xfffffe00c7880000, zra=<optimized out>, claim_txg=<optimized out>)
     at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c:3243
#13 0xffffffff81449d65 in zil_parse (zilog=0xfffff80048f54c00,
     parse_blk_func=0xffffffff8144e7b0 <zil_incr_blks>,
     parse_lr_func=0xffffffff8144e7c0 <zil_replay_log_record>,
     arg=0xfffffe009ab635c0, txg=11396685)
     at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c:383
#14 0xffffffff8144e76c in zil_replay (os=<optimized out>,
     arg=0xfffffe00ab6be000, replay_func=0xffffffff8154b9b0  
<zfs_replay_vector>)
     at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c:3297
#15 0xffffffff81482515 in zfsvfs_setup (zfsvfs=0xfffffe00ab6be000, mounting=1)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:1278
#16 0xffffffff8147fb9f in zfs_domount (vfsp=<optimized out>,
     osname=<optimized out>)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:1433
#17 zfs_mount (vfsp=0xfffff80076958000)
     at  
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c:1915
#18 0xffffffff8054e714 in vfs_domount_first (td=<optimized out>,
     fspath=<optimized out>, vp=<optimized out>, optlist=0xfffffe009ab63a28,
     vfsp=<optimized out>, fsflags=<optimized out>)
     at /usr/src/sys/kern/vfs_mount.c:892
#19 vfs_domount (td=0xfffff8004ebcb000, fstype=<optimized out>,
     fspath=<optimized out>, fsflags=<optimized out>,
(kgdb) up 6
#6  0xffffffff81445641 in zfs_mknode (dzp=0xfffff8007644fc60,  
vap=0xfffffe009ab630f8, tx=0xfffff8019fcbbb00,
     cr=0xfffff80002068000, flag=0, zpp=0xfffffe009ab62fb8,  
acl_ids=0xfffffe009ab62f58)
     at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c:817
817                             VERIFY0(dmu_object_claim(zfsvfs->z_os, obj,
(kgdb) list
812                                 zfsvfs->z_norm, DMU_OT_DIRECTORY_CONTENTS,
813                                 obj_type, bonuslen, tx);
814                     }
815             } else {
816                     if (zfsvfs->z_replay) {
817                             VERIFY0(dmu_object_claim(zfsvfs->z_os, obj,
818                                 DMU_OT_PLAIN_FILE_CONTENTS, 0,
819                                 obj_type, bonuslen, tx));
820                     } else {
821                             obj = dmu_object_alloc(zfsvfs->z_os,
(kgdb) print obj
$2 = 16393
(kgdb) print zfsvfs
$3 = (zfsvfs_t *) 0xfffffe00ab6be000
(kgdb) print obj_type
$4 = DMU_OT_SA
(kgdb) print bonuslen
$5 = <optimized out>
(kgdb) print tx
$6 = (dmu_tx_t *) 0xfffff8019fcbbb00
---snip---

Which options do I have to fix this (instead of destroying it)?
I tried already this: zdb -AAFdd mpool/iocage/jails/www-f/root/usr
but this leads to immediate panic.

Bye,
Alexander.

-- 
http://www.Leidinger.net Alexander at Leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org    netchild at FreeBSD.org  : PGP 0x8F31830F9F2772BF
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: Digitale PGP-Signatur
URL: <http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20180713/dacb70a0/attachment.sig>


More information about the freebsd-fs mailing list