NetBSD-Bugs archive

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

kern/45635: KASSERT "fli->fli_trans_cnt == 0" failed



>Number:         45635
>Category:       kern
>Synopsis:       KASSERT "fli->fli_trans_cnt == 0" failed
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Nov 20 22:15:00 +0000 2011
>Originator:     Nicolas Joly
>Release:        NetBSD 5.99.56
>Organization:
Institut Pasteur
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 5.99.56 NetBSD 5.99.56 (LANFEUST) #13: 
Fri Nov 18 22:27:54 CET 2011 
njoly%lanfeust.sis.pasteur.fr@localhost:/local/src/NetBSD/obj.amd64/sys/arch/amd64/compile/LANFEUST
 amd64
Architecture: x86_64
Machine: amd64
>Description:
Running cat(1) on a directory from a mounted msdos file system result in a
reproductible KASSERT.

njoly@petaure [~]> mount -vv | grep windows
/dev/wd0f on /mount/windows/D type msdos (local, fsid: 0x5/0x764f, reads: sync 
1 async 0, writes: sync 0 async 0, [msdos: uid=0, gid=0, mask=0755, 
dirmask=0755, flags=0x20000012<longname,mntversioned,fatmirror>])
petaure [~]> cat /mount/windows/D >/dev/null
[...KASSERT...]

panic: kernel diagnostic assertion "fli->fli_trans_cnt == 0" failed: file 
"/local/src/NetBSD/src/sys/kern/vfs_trans.c", line 111 
cpu0: Begin traceback...
kern_assert() at netbsd:kern_assert+0x48
fstrans_lwp_dtor() at netbsd:fstrans_lwp_dtor+0x6e
specificdata_fini() at netbsd:specificdata_fini+0x69
exit1() at netbsd:exit1+0x1d5
sys_exit() at netbsd:sys_exit+0x3e
syscall() at netbsd:syscall+0xac
cpu0: End traceback...

(gdb) bt
#0  0xffffffff8052af51 in cpu_reboot (howto=260, bootstr=<optimized out>)
    at /local/src/NetBSD/src/sys/arch/amd64/amd64/machdep.c:753
#1  0xffffffff8070a857 in vpanic (
    fmt=0xffffffff80ace7d8 "kernel %sassertion \"%s\" failed: file \"%s\", line 
%d ", ap=0xffff80004adf9a90) at /local/src/NetBSD/src/sys/kern/subr_prf.c:308
#2  0xffffffff80877168 in kern_assert (fmt=<unavailable>)
    at /local/src/NetBSD/src/sys/lib/libkern/kern_assert.c:50
#3  0xffffffff8080bce8 in fstrans_lwp_dtor (arg=<optimized out>)
    at /local/src/NetBSD/src/sys/kern/vfs_trans.c:111
#4  0xffffffff8070c0ad in specificdata_fini (sd=0xffff80004700fc00, 
    ref=<optimized out>)
    at /local/src/NetBSD/src/sys/kern/subr_specificdata.c:297
#5  0xffffffff804b0b6d in exit1 (l=0xffff80004ad352e0, rv=<optimized out>)
    at /local/src/NetBSD/src/sys/kern/kern_exit.c:409
#6  0xffffffff804b136f in sys_exit (l=0xffff80004ad352e0, 
    uap=0xffff80004adf9c80, retval=<optimized out>)
    at /local/src/NetBSD/src/sys/kern/kern_exit.c:184
#7  0xffffffff807246cc in sy_call (rval=0xffff80004adf9c30, 
    uap=0xffff80004adf9c80, l=0xffff80004ad352e0, sy=0xffffffff80e14b70)
    at /local/src/NetBSD/src/sys/sys/syscallvar.h:61
#8  syscall (frame=0xffff80004adf9c80)
    at /local/src/NetBSD/src/sys/arch/x86/x86/syscall.c:161
#9  0xffffffff801006a8 in Xsyscall ()
#10 0x0000000000000000 in ?? ()
(gdb) frame 3
#3  0xffffffff8080bce8 in fstrans_lwp_dtor (arg=<optimized out>)
    at /local/src/NetBSD/src/sys/kern/vfs_trans.c:111
111                     KASSERT(fli->fli_trans_cnt == 0);
(gdb) p *fli
$1 = {fli_succ = 0x0, fli_mount = 0xffff800049259000, fli_trans_cnt = 1, 
  fli_cow_cnt = 0, fli_lock_type = FSTRANS_SHARED}




>How-To-Repeat:
mount a msdos filesystem and use cat(1) on a directory.
>Fix:



Home | Main Index | Thread Index | Old Index