Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: panic: kernel diagnostic assertion VOP_ISLOCKET(vp) == LK_EXCLUSIVE
Hi,
In message <15BEBCC1-4756-46AD-A424-E5232065BE7D%mailbox.org@localhost>
on Fri, 22 Apr 2022 19:39:35 +0200,
"J. Hannken-Illjes" <hannken%mailbox.org@localhost> wrote:
>> #5 0xffffffff80e69314 in VOP_FDISCARD (vp=0xffff879fb253da40,
>> pos=<optimized out>, len=<optimized out>)
>> at /usr/src/sys/kern/vnode_if.c:845
>> #6 0xffffffff80e69314 in VOP_FDISCARD (vp=0xffff879fb2e99cc0,
>> pos=pos@entry=5843857408, len=len@entry=2048)
>> at /usr/src/sys/kern/vnode_if.c:845
>
> This one is different from the previous stack trace, two VOP_FDISCARD().
>
> Could you print the vnodes and mounts from frame #6 and #5,
> ( print *vp and print *vp->v_mount ) please?
(gdb) frame
#5 0xffffffff80e69314 in VOP_FDISCARD (vp=0xffff8380cab3d7c0,
pos=<optimized out>, len=<optimized out>)
at /usr/src/sys/kern/vnode_if.c:845
845 error = (VCALL(vp, VOFFSET(vop_fdiscard), &a));
(gdb) p *vp
$4 = {v_uobj = {vmobjlock = 0xffff83874d7d4200,
pgops = 0xffffffff813589c0 <uvm_vnodeops>, uo_npages = 0, uo_refs = 1,
uo_pages = {t_root = 0x0, t_height = 0}, uo_ubc = {lh_first = 0x0}},
v_size = 0, v_writesize = 0, v_cv = {cv_opaque = {0x0, 0xffffffff81491feb}},
v_iflag = 0, v_uflag = 0, v_usecount = -2147483647, v_numoutput = 0,
v_writecount = 1, v_holdcnt = 0, v_cleanblkhd = {lh_first = 0x0},
v_dirtyblkhd = {lh_first = 0x0}, v_vflag = 16,
v_interlock = 0xffff83874d47eec0, v_mount = 0xffff83874d498000,
v_op = 0xffff83874b39f400, v_un = {vu_mountedhere = 0xffff838748345a00,
vu_socket = 0xffff838748345a00, vu_specnode = 0xffff838748345a00,
vu_fifoinfo = 0xffff838748345a00, vu_ractx = 0xffff838748345a00},
v_type = VBLK, v_tag = VT_NON, v_data = 0x0, v_klist = {slh_first = 0x0},
v_klist_interest = 0, v_segvguard = 0x0}
(gdb) p *vp->v_mount
$5 = {mnt_vnodelock = 0xffff83874d47e200,
mnt_op = 0xffffffff8188f860 <dead_vfsops>, mnt_vnodecovered = 0x0,
mnt_lower = 0x0, mnt_transinfo = 0xffff83874c3aa1c0, mnt_data = 0x0,
mnt_renamelock = 0xffff83874d47e1c0, mnt_flag = 0, mnt_iflag = 256,
mnt_fs_bshift = 0, mnt_dev_bshift = 0, mnt_specdataref = {
specdataref_container = 0x0, specdataref_lock = {u = {mtxa_owner = 0, s = {
mtxs_dummy = 0 '\000', mtxs_ipl = {_ipl = 0 '\000'},
mtxs_lock = 0 '\000', mtxs_unused = 0 '\000'}}}},
mnt_updating = 0xffff83874d47e240, mnt_wapbl_op = 0x0, mnt_wapbl = 0x0,
mnt_wapbl_replay = 0x0, mnt_gen = 0, mnt_refcnt = 5, mnt_synclist_slot = 0,
mnt_vnodelist = {tqh_first = 0xffff8380cab3d2c0,
tqh_last = 0xffff8380cae9d9d8}, mnt_stat = {f_flag = 0, f_bsize = 0,
f_frsize = 0, f_iosize = 0, f_blocks = 0, f_bfree = 0, f_bavail = 0,
f_bresvd = 0, f_files = 0, f_ffree = 0, f_favail = 0, f_fresvd = 0,
f_syncreads = 0, f_syncwrites = 0, f_asyncreads = 0, f_asyncwrites = 0,
f_fsidx = {__fsid_val = {0, 0}}, f_fsid = 0, f_namemax = 0, f_owner = 0,
f_spare = {0, 0, 0, 0}, f_fstypename = '\000' <repeats 31 times>,
f_mntonname = '\000' <repeats 1023 times>,
f_mntfromname = '\000' <repeats 1023 times>,
f_mntfromlabel = '\000' <repeats 1023 times>}}
(gdb) up
#6 0xffffffff80e69314 in VOP_FDISCARD (vp=0xffff8380cc0e0cc0,
pos=pos@entry=3024259072, len=len@entry=2048)
at /usr/src/sys/kern/vnode_if.c:845
845 error = (VCALL(vp, VOFFSET(vop_fdiscard), &a));
(gdb) p *vp
$6 = {v_uobj = {vmobjlock = 0xffff8380cb4a9e40,
pgops = 0xffffffff813589c0 <uvm_vnodeops>, uo_npages = 0, uo_refs = 1,
uo_pages = {t_root = 0x0, t_height = 0}, uo_ubc = {lh_first = 0x0}},
v_size = 0, v_writesize = 0, v_cv = {cv_opaque = {0x0, 0xffffffff81491feb}},
v_iflag = 16384, v_uflag = 0, v_usecount = -1073741810, v_numoutput = 0,
v_writecount = 0, v_holdcnt = 8, v_cleanblkhd = {
lh_first = 0xffff8380cd540a88}, v_dirtyblkhd = {
lh_first = 0xffff8380cd540cb8}, v_vflag = 16,
v_interlock = 0xffff8380cb4d8340, v_mount = 0xffff8380cad11000,
v_op = 0xffff838748392600, v_un = {vu_mountedhere = 0xffff8380cad1e6c0,
vu_socket = 0xffff8380cad1e6c0, vu_specnode = 0xffff8380cad1e6c0,
vu_fifoinfo = 0xffff8380cad1e6c0, vu_ractx = 0xffff8380cad1e6c0},
v_type = VBLK, v_tag = VT_UFS, v_data = 0xffff8380cb787b90, v_klist = {
slh_first = 0x0}, v_klist_interest = 0, v_segvguard = 0x0}
(gdb) p *vp->v_mount
$7 = {mnt_vnodelock = 0xffff83874d47ef00,
mnt_op = 0xffffffff81885180 <ffs_vfsops>, mnt_vnodecovered = 0x0,
mnt_lower = 0x0, mnt_transinfo = 0xffff8380cad1e040,
mnt_data = 0xffff8380cace87c0, mnt_renamelock = 0xffff83874d47ef40,
mnt_flag = 8409088, mnt_iflag = 2016, mnt_fs_bshift = 14,
mnt_dev_bshift = 9, mnt_specdataref = {specdataref_container = 0x0,
specdataref_lock = {u = {mtxa_owner = 0, s = {mtxs_dummy = 0 '\000',
mtxs_ipl = {_ipl = 0 '\000'}, mtxs_lock = 0 '\000',
mtxs_unused = 0 '\000'}}}}, mnt_updating = 0xffff83874d47ef80,
mnt_wapbl_op = 0x0, mnt_wapbl = 0x0, mnt_wapbl_replay = 0x0, mnt_gen = 2,
mnt_refcnt = 3069, mnt_synclist_slot = 16, mnt_vnodelist = {
tqh_first = 0xffff8380cab3da40, tqh_last = 0xffff8380cc8a3c18},
mnt_stat = {f_flag = 0, f_bsize = 16384, f_frsize = 2048, f_iosize = 16384,
f_blocks = 508263, f_bfree = 382265, f_bavail = 356852, f_bresvd = 25413,
f_files = 127102, f_ffree = 119915, f_favail = 119915, f_fresvd = 0,
f_syncreads = 6653, f_syncwrites = 10, f_asyncreads = 0,
f_asyncwrites = 37, f_fsidx = {__fsid_val = {43012, 1931}},
f_fsid = 43012, f_namemax = 255, f_owner = 0, f_spare = {0, 0, 0, 0},
f_fstypename = "ffs", '\000' <repeats 28 times>,
f_mntonname = "/", '\000' <repeats 1022 times>,
f_mntfromname = "/dev/dk4", '\000' <repeats 1015 times>,
f_mntfromlabel = "root", '\000' <repeats 1019 times>}}
> What is mounted ( /etc/fstab and mount )?
It is a great hint for me!
I completely forgot that I added "discard" option.
After removing it, no more panic() without patch to ffs_alloc.c.
# cat /etc/fstab
/dev/dk0 /efi msdos rw,noauto 0 0
/dev/dk4 / ffs rw,discard 1 1
/dev/dk9 none swap sw 0 0
/dev/dk5 /var ffs rw,discard 1 2
/dev/dk6 /usr ffs rw,discard 1 3
/dev/dk7 /data ffs rw,discard 1 4
/dev/dk8 /home ffs rw,discard 1 5
tmpfs /tmp tmpfs rw 0 0
tmpfs /var/run tmpfs rw,-sram%25 0 0
tmpfs /var/shm tmpfs rw,-m1777,-sram%25 0 0
none /proc procfs rw,linux 0 0
ptyfs /dev/pts ptyfs rw 0 0
Best regards.
--
Takahiro Kambe <taca%back-street.net@localhost>
Home |
Main Index |
Thread Index |
Old Index