NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/54195: -current (20190508) null mounts: panic:kernel diagnostic assertion "fstrans_is_owner(mp)" failed: file "/src/NetBSD/cur/src/sys/kern/vfs_vnode.c", line 495



>Number:         54195
>Category:       kern
>Synopsis:       unmount of stacked null mount may panic
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat May 11 13:10:00 +0000 2019
>Originator:     Frank Kardel
>Release:        NetBSD 8.99.39 20190510
>Organization:
	
>Environment:
System: NetBSD pip.kardel.name 8.99.39 NetBSD 8.99.39 (GENERIC) #0: Fri May 10 09:42:46 UTC 2019 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
	unmount of stacked null mounts may panic: kernel diagnostic assertion "fstrans_is_owner(mp)" failed: file "/src/NetBSD/cur/src/sys/kern/vfs_vnode.c", line 495
>How-To-Repeat:
	mkdir /p
	mkdir /p/d
	mkdir /pp
	mount -t null /p /pp
	mkdir /ppp
	mount -t null /pp /ppp
	mount -t null /pp/d /ppp/d
	umount /ppp/d
	=> panic

(gdb) bt
#0  0xffffffff80222caa in cpu_reboot (howto=howto@entry=260, bootstr=bootstr@entry=0x0) at /src/NetBSD/cur/src/sys/arch/amd64/amd64/machdep.c:728
#1  0xffffffff80a13386 in vpanic (fmt=0xffffffff813594a8 "kernel %sassertion \"%s\" failed: file \"%s\", line %d ", ap=ap@entry=0xffff82849760cc88)
    at /src/NetBSD/cur/src/sys/kern/subr_prf.c:335
#2  0xffffffff80e4f03b in kern_assert (fmt=fmt@entry=0xffffffff813594a8 "kernel %sassertion \"%s\" failed: file \"%s\", line %d ")
    at /src/NetBSD/cur/src/sys/lib/libkern/kern_assert.c:51
#3  0xffffffff80a77983 in vrele_flush (mp=<optimized out>) at /src/NetBSD/cur/src/sys/kern/vfs_vnode.c:495
#4  0xffffffff80a67023 in vflush (mp=mp@entry=0xffffe55b36b06008, skipvp=skipvp@entry=0xffffe55ab99d1038, flags=0) at /src/NetBSD/cur/src/sys/kern/vfs_mount.c:595
#5  0xffffffff808cef72 in nullfs_unmount (mp=0xffffe55b36b06008, mntflags=<optimized out>) at /src/NetBSD/cur/src/sys/miscfs/nullfs/null_vfsops.c:197
#6  0xffffffff80a6c07f in VFS_UNMOUNT (mp=mp@entry=0xffffe55b36b06008, a=a@entry=0) at /src/NetBSD/cur/src/sys/kern/vfs_subr.c:1340
#7  0xffffffff80a6936e in dounmount (mp=mp@entry=0xffffe55b36b06008, flags=0, l=l@entry=0xffffe55b3236e2a0) at /src/NetBSD/cur/src/sys/kern/vfs_mount.c:875
#8  0xffffffff80a6f80f in sys_unmount (l=0xffffe55b3236e2a0, uap=0xffff82849760d000, retval=<optimized out>) at /src/NetBSD/cur/src/sys/kern/vfs_syscalls.c:634
#9  0xffffffff80251092 in sy_call (rval=0xffff82849760cfb0, uap=0xffff82849760d000, l=0xffffe55b3236e2a0, sy=0xffffffff81857df0 <sysent+528>)
    at /src/NetBSD/cur/src/sys/sys/syscallvar.h:65
#10 sy_invoke (code=22, rval=0xffff82849760cfb0, uap=0xffff82849760d000, l=0xffffe55b3236e2a0, sy=0xffffffff81857df0 <sysent+528>)
    at /src/NetBSD/cur/src/sys/sys/syscallvar.h:94
#11 syscall (frame=0xffff82849760d000) at /src/NetBSD/cur/src/sys/arch/x86/x86/syscall.c:138
#12 0xffffffff802096dd in handle_syscall ()
#13 0x00007f7fff2b3d90 in ?? ()
#14 0x0000000000000000 in ?? ()
(gdb) print panicstr
$1 = 0xffffffff8198fe20 <scratchstr> "kernel diagnostic assertion \"fstrans_is_owner(mp)\" failed: file \"/src/NetBSD/cur/src/sys/kern/vfs_vnode.c\", line 495 "

	The initial "mount -t null /p /pp" is necessary, without it the panic does not happen.
>Fix:
	don't stack too many null mounts :-(.



Home | Main Index | Thread Index | Old Index