NetBSD-Bugs archive

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

kern/44240: puffs deadlock when a file system server died



>Number:         44240
>Category:       kern
>Synopsis:       puffs deadlock when a file system server died
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 16 04:30:00 +0000 2010
>Originator:     YAMAMOTO Takashi
>Release:        NetBSD 5.99.41
>Organization:
        
>Environment:
        
        
Architecture: i386
Machine: i386
>Description:
        puffs often deadlock when a file system server died.
        the server is using PUFFS_KFLAG_NOCACHE_NAME|PUFFS_KFLAG_WTCACHE
        if it matters.

the following is the file system server dying due to an assertion failure.

(gdb) bt
#0  0xc02adf36 in mi_switch (l=0xd7384a80)
    at /siro/nbsd/src/sys/kern/kern_synch.c:790
#1  0xc02aac5b in sleepq_block (timo=0, catch=false)
    at /siro/nbsd/src/sys/kern/kern_sleepq.c:262
#2  0xc02b9c9d in turnstile_block (ts=0xd7cab758, q=1, obj=0xdf258fcc,
    sobj=0xc05e357c) at /siro/nbsd/src/sys/kern/kern_turnstile.c:343
#3  0xc02a632e in rw_vector_enter (rw=0xdf258fcc, op=RW_WRITER)
    at /siro/nbsd/src/sys/kern/kern_rwlock.c:391
#4  0xc01e73af in genfs_lock (v=0xd737394c)
    at /siro/nbsd/src/sys/miscfs/genfs/genfs_vnops.c:300
#5  0xc04e1af8 in VOP_LOCK (vp=0xdf258f2c, flags=2)
    at /siro/nbsd/src/sys/kern/vnode_if.c:1103
#6  0xc04c7c49 in vclean (vp=0xdf258f2c, flags=8)
    at /siro/nbsd/src/sys/kern/vfs_subr.c:1854
#7  0xc04cb465 in vflush (mp=0xd750e004, skipvp=0x0,
    flags=<value optimized out>) at /siro/nbsd/src/sys/kern/vfs_subr.c:1782
#8  0xd734a1f6 in puffs_vfsop_unmount ()
#9  0xc04c5b66 in VFS_UNMOUNT (mp=0xd750e004, a=524288)
    at /siro/nbsd/src/sys/kern/vfs_subr.c:3001
#10 0xc04cfe0c in dounmount (mp=0xd750e004, flags=524288, l=0xd7384a80)
    at /siro/nbsd/src/sys/kern/vfs_syscalls.c:776
#11 0xd7348153 in puffs_msgif_close ()
#12 0xd72be585 in putter_fop_close ()
#13 0xc02844ed in closef (fp=0xd6f805c0)
    at /siro/nbsd/src/sys/kern/kern_descrip.c:794
#14 0xc0284dfe in fd_close (fd=4) at /siro/nbsd/src/sys/kern/kern_descrip.c:679
#15 0xc0285afc in fd_free () at /siro/nbsd/src/sys/kern/kern_descrip.c:1529
#16 0xc028e23c in exit1 (l=0xd7384a80, rv=134)
    at /siro/nbsd/src/sys/kern/kern_exit.c:284
#17 0xc02a97bb in sigexit (l=0xd7384a80, signo=6)
    at /siro/nbsd/src/sys/kern/kern_sig.c:2205
#18 0xc02a9a5d in postsig (signo=6) at /siro/nbsd/src/sys/kern/kern_sig.c:2002
#19 0xc02969e8 in lwp_userret (l=0xd7384a80)
    at /siro/nbsd/src/sys/kern/kern_lwp.c:1395
#20 0xc0429f56 in syscall (frame=0xd7373d48)
    at /siro/nbsd/src/sys/sys/userret.h:90
#21 0xc01005cd in syscall1 ()

the following is an owner of the lock 0xdf258fcc.

(gdb) bt
#0  0xc02adf36 in mi_switch (l=0xd8713aa0)
    at /siro/nbsd/src/sys/kern/kern_synch.c:790
#1  0xc02aac5b in sleepq_block (timo=0, catch=false)
    at /siro/nbsd/src/sys/kern/kern_sleepq.c:262
#2  0xc02af35d in mtsleep (ident=0xc351de68, priority=516,
    wmesg=0xc0588d92 "genput", timo=0, mtx=0xdf258f2c)
    at /siro/nbsd/src/sys/kern/kern_synch.c:240
#3  0xc01e62c8 in genfs_do_putpages (vp=0xdf258f2c, startoff=1343488,
    endoff=1347584, origflags=<value optimized out>, busypg=0x0)
    at /siro/nbsd/src/sys/miscfs/genfs/genfs_io.c:1013
#4  0xc01e699d in genfs_putpages (v=0xd8ef8b1c)
    at /siro/nbsd/src/sys/miscfs/genfs/genfs_io.c:810
#5  0xc04e1603 in VOP_PUTPAGES (vp=0xdf258f2c, offlo=1343488, offhi=1347584,
    flags=1) at /siro/nbsd/src/sys/kern/vnode_if.c:1429
#6  0xd734d8dc in puffs_vnop_write ()
#7  0xd734b510 in puffs_vnop_checkop ()
#8  0xc04e23d4 in VOP_WRITE (vp=0xdf258f2c, uio=0xd8ef8c7c, ioflag=16,
    cred=0xd6d390c0) at /siro/nbsd/src/sys/kern/vnode_if.c:431
#9  0xc04d233c in vn_write (fp=0xd8c60780, offset=0xd8c60780, uio=0xd8ef8c7c,
    cred=0xd6d390c0, flags=1) at /siro/nbsd/src/sys/kern/vfs_vnops.c:566
#10 0xc041d845 in dofilewrite (fd=3, fp=0x0, buf=0xbb90e000, nbyte=45,
    offset=0xd8c60780, flags=1, retval=0xd8ef8d28)
    at /siro/nbsd/src/sys/kern/sys_generic.c:356
#11 0xc041d96f in sys_write (l=0xd8713aa0, uap=0xd8ef8d00, retval=0xd8ef8d28)
    at /siro/nbsd/src/sys/kern/sys_generic.c:324
#12 0xc0429e94 in syscall (frame=0xd8ef8d48)
    at /siro/nbsd/src/sys/sys/syscallvar.h:61
#13 0xc01005cd in syscall1 ()

(gdb) p *(struct vnode *)0xdf258f2c
$16 = {v_uobj = {vmobjlock = {u = {mtxa_owner = 0}}, pgops = 0xc056d128, 
    memq = {tqh_first = 0xc0b86448, tqh_last = 0xc351de7c}, uo_npages = 329, 
    uo_refs = 2, rb_tree = {rbt_root = 0xc31a49f8, rbt_ops = 0xc056cf80, 
      rbt_minmax = {0xc0b86448, 0xc351de68}}}, v_cv = {cv_opaque = {0x0, 
      0xdf258f54, 0xc05acc41}}, v_size = 1345503, v_writesize = 1345503, 
  v_iflag = 20480, v_vflag = 0, v_uflag = 0, v_numoutput = 2, 
  v_writecount = 1, v_holdcnt = 1, v_synclist_slot = 22, v_mount = 0xd750e004, 
  v_op = 0xd6f37ee4, v_freelist = {tqe_next = 0xd9af2648, 
    tqe_prev = 0xc05ea3d8}, v_freelisthd = 0x0, v_mntvnodes = {
    tqe_next = 0xd7a470e4, tqe_prev = 0xd750e00c}, v_cleanblkhd = {
    lh_first = 0x0}, v_dirtyblkhd = {lh_first = 0x0}, v_synclist = {
    tqe_next = 0x0, tqe_prev = 0xd5ab0d54}, v_dnclist = {lh_first = 0x0}, 
  v_nclist = {lh_first = 0x0}, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, 
    vu_specnode = 0x0, vu_fifoinfo = 0x0, vu_ractx = 0x0}, v_type = VREG, 
  v_tag = VT_PUFFS, v_lock = {rw_owner = 3631299239}, v_data = 0xde314444, 
  v_klist = {slh_first = 0x0}}

>How-To-Repeat:
        
>Fix:
        

>Unformatted:
        
        


Home | Main Index | Thread Index | Old Index