NetBSD-Bugs archive

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

kern/57775: "panic: unmount: dangling vnode" while umounting procfs



>Number:         57775
>Category:       kern
>Synopsis:       "panic: unmount: dangling vnode" while umounting procfs
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Dec 15 08:55:00 +0000 2023
>Originator:     S.P.Zeidler
>Release:        NetBSD 10.0_RC1
>Organization:
The NetBSD Foundation
>Environment:
System: NetBSD shadow.netbsd.org 10.0_RC1 NetBSD 10.0_RC1 (SHADOW) #6: Tue Dec 12 22:32:36 UTC 2023 spz%franklin.NetBSD.org@localhost:/home/netbsd/10/amd64/obj/sys/arch/amd64/compile/SHADOW amd64
Architecture: x86_64
Machine: amd64

This kernel has LOCKDEBUG
>Description:

[ 150137.1746769] panic: unmount: dangling vnode
[ 150137.1746769] cpu2: Begin traceback...
[ 150137.1846769] vpanic() at netbsd:vpanic+0x183
[ 150137.1846769] panic() at netbsd:panic+0x3c
[ 150137.1946765] dounmount() at netbsd:dounmount+0x23e
[ 150137.1946765] sys_unmount() at netbsd:sys_unmount+0xf8
[ 150137.2046767] syscall() at netbsd:syscall+0x211
[ 150137.2046767] --- syscall (number 22) ---
[ 150137.2146772] netbsd:syscall+0x211:
[ 150137.2146772] cpu2: End traceback...
[ 150137.2146772] fatal breakpoint trap in supervisor mode
[ 150137.2246772] trap type 1 code 0 rip 0xffffffff80235385 cs 0x8 rflags 0x202 
cr2 0x78d906f76a95 ilevel 0 rsp 0xffff9604f90abdf0
[ 150137.2346777] curlwp 0xffff807c6750fb80 pid 15368.15368 lowest kstack 0xffff
9604f90a72c0
Stopped in pid 15368.15368 (umount) at  netbsd:breakpoint+0x5:  leave
breakpoint() at netbsd:breakpoint+0x5
vpanic() at netbsd:vpanic+0x183
panic() at netbsd:panic+0x3c
dounmount() at netbsd:dounmount+0x23e
sys_unmount() at netbsd:sys_unmount+0xf8
syscall() at netbsd:syscall+0x211
--- syscall (number 22) ---
netbsd:syscall+0x211:
ds          8
es          2
fs          180
gs          bda0
rdi         0
rsi         2da
rbp         ffff9604f90abdf0
rbx         0
rdx         1
rcx         ffffffffffffff
rax         800000000000000
r8          0
r9          0
r10         ffff9604f90ab470
r11         fffffffe
r12         ffffffff80c5072a    ostype+0xa0f31
r13         ffff9604f90abe38
r14         104
r15         ffff807c7ba39000
rip         ffffffff80235385    breakpoint+0x5
cs          8
rflags      202
rsp         ffff9604f90abdf0
ss          10
netbsd:breakpoint+0x5:  leave

(gdb) 
   0xffffffff808d55b2 <dounmount+215>:
    call   0xffffffff808d545c <mountlist_remove>
(gdb) 
   0xffffffff808d55b7 <dounmount+220>:  cmpq   $0x0,0x88(%r15)
(gdb) 
   0xffffffff808d55bf <dounmount+228>:
    jne    0xffffffff808d570b <dounmount+560>
(gdb) x/i 0xffffffff808d570b
   0xffffffff808d570b <dounmount+560>:  mov    $0xffffffff80c5072a,%rdi
(gdb) 
   0xffffffff808d5712 <dounmount+567>:  xor    %eax,%eax
(gdb) 
   0xffffffff808d5714 <dounmount+569>:  call   0xffffffff808887e8 <panic>
(gdb) x/s 0xffffffff80c5072a
0xffffffff80c5072a:     "unmount: dangling vnode"
(gdb) print *(struct mount *) 0xffff807c7ba39000
$2 = {mnt_vnodelock = 0xffff8093018f7840, 
  mnt_op = 0xffffffff80e5c020 <procfs_vfsops>, 
  mnt_vnodecovered = 0xffff807d5bb724c0, mnt_lower = 0x0, mnt_transinfo = 0x0, 
  mnt_data = 0x0, mnt_renamelock = 0xffff807df9571040, mnt_flag = 4096, 
  mnt_iflag = 387, 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 = 0xffff808587f27740, mnt_wapbl_op = 0x0, mnt_wapbl = 0x0, 
  mnt_wapbl_replay = 0x0, mnt_gen = 778, mnt_refcnt = 2, 
  mnt_synclist_slot = 15, mnt_vnodelist = {tqh_first = 0x0, 
    tqh_last = 0xffff807c7ba39088}, mnt_stat = {f_flag = 0, f_bsize = 4096, 
    f_frsize = 4096, f_iosize = 4096, f_blocks = 1, f_bfree = 0, f_bavail = 0, 
    f_bresvd = 0, f_files = 2068, f_ffree = 1848, f_favail = 1848, 
    f_fresvd = 0, f_syncreads = 0, f_syncwrites = 0, f_asyncreads = 0, 
    f_asyncwrites = 0, f_fsidx = {__fsid_val = {3152645, 110107}}, 
    f_fsid = 3152645, f_namemax = 255, f_owner = 0, f_spare = {0, 0, 0, 0}, 
    f_fstypename = "procfs", '\000' <repeats 25 times>, 
    f_mntonname = "/bulk/work/x86_64-9.0-HEAD/s3/proc", '\000' <repeats 989 times>, f_mntfromname = "procfs", '\000' <repeats 1017 times>, 
    f_mntfromlabel = '\000' <repeats 1023 times>}}

we have a coredump. its netbsd.gdb and its fitting source.

>How-To-Repeat:
	Have a pkg bulk build on shadow (in chroot) finishing and the sandbox
	umounting. procfs gets a umount -f
	This is the second "dangling vnode" panic we have seen there
	this month, but we didn't get a dump the first time.
>Fix:
	

>Unformatted:
 	source of 20231212


Home | Main Index | Thread Index | Old Index