Re: [issue1504] hammer crash on cleanups

看板DFBSD_bugs作者時間16年前 (2009/09/16 17:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/12 (看更多)
Hello again. Simon 'corecode' Schubert wrote: > Best update to latest master, there were many fixes since August. Now I've an updated kernel with sources from 13-sep-2009: DragonFly diana.medcom.com.ua 2.3.2-DEVELOPMENT DragonFly 2.3.2-DEVELOPMENT #1: Tue Sep 15 17:23:22 EEST 2009 root@diana.medcom.com.ua:/usr/obj/usr/src/sys/CUSTOM i386 but the "panic" message greeted me this morning: panic: assertion: cursor->trans->sync_lock_refs > 0 in hammer_recover_cursor Trace beginning at frame 0xd75ca708 panic(d75ca72c,d75ca7a8,d75ca88c,d75ca804,d75ca738) at panic+0x8c panic(c05ac924,c0617e20,c059441c,d75ca7a8,d75ca99c) at panic+0x8c hammer_recover_cursor(d75ca7a8,b,8,d75ca768,c04acd05) at hammer_recover_cursor+0x2c hammer_ioc_mirror_write(d75caa74,d2d28550,c2a727f8,d75ca9d8,c0394328) at hammer_ioc_mirror_write+0x947 hammer_ioctl(d2d28550,c0c46808,c2a727f8,1,c29a7768) at hammer_ioctl+0x8f8 hammer_vop_ioctl(d75caad0,c067a1e0,d4ae7050,d75caaec,c0345eaa) at hammer_vop_ioctl+0x2f vop_ioctl(d4ae7050,c2b145e8,c0c46808,c2a727f8,1) at vop_ioctl+0x3e vn_ioctl(d0291928,c0c46808,c2a727f8,c29a7768,d75cacf0) at vn_ioctl+0xe0 mapped_ioctl(3,c0c46808,bfbffa14,0,d75cacf0) at mapped_ioctl+0x3e7 sys_ioctl(d75cacf0,6,1b88a2c3,0,d2aed218) at sys_ioctl+0x17 syscall2(d75cad40) at syscall2+0x1ef Xint0x80_syscall() at Xint0x80_syscall+0x36 Debugger("panic") a partly backtrace is: #11 0xc04b0f8c in hammer_recover_cursor (cursor=0xd75ca7a8) at /usr/src/sys/vfs/hammer/hammer_cursor.c:591 591 KKASSERT(cursor->trans->sync_lock_refs > 0); (kgdb) list 586 hammer_recover_cursor(hammer_cursor_t cursor) 587 { 588 int error; 589 590 hammer_unlock_cursor(cursor); 591 KKASSERT(cursor->trans->sync_lock_refs > 0); 592 593 /* 594 * Wait for the deadlock to clear 595 */ (kgdb) print cursor $1 = (hammer_cursor_t) 0xd75ca7a8 (kgdb) print cursor->trans $2 = (hammer_transaction_t) 0xd75caa74 (kgdb) print cursor->trans->sync_lock_refs $3 = 0 #12 0xc04ba517 in hammer_ioc_mirror_write (trans=0xd75caa74, ip=0xd2d28550, mirror=0xc2a727f8) at /usr/src/sys/vfs/hammer/hammer_mirror.c:469 469 hammer_recover_cursor(&cursor); (kgdb) list 464 * Retry the current record on deadlock, otherwise setup 465 * for the next loop. 466 */ 467 if (error == EDEADLK) { 468 while (error == EDEADLK) { 469 hammer_recover_cursor(&cursor); 470 error = hammer_cursor_upgrade(&cursor); 471 } 472 } else { 473 if (error == EALREADY) #13 0xc04b97dc in hammer_ioctl (ip=0xd2d28550, com=3234097160, data=0xc2a727f8 "", fflag=1, cred=0xc29a7768) at /usr/src/sys/vfs/hammer/hammer_ioctl.c:134 134 error = hammer_ioc_mirror_write(&trans, ip, (kgdb) list 129 (struct hammer_ioc_mirror_rw *)data); 130 } 131 break; 132 case HAMMERIOC_MIRROR_WRITE: 133 if (error == 0) { 134 error = hammer_ioc_mirror_write(&trans, ip, 135 (struct hammer_ioc_mirror_rw *)data); 136 } 137 break; 138 case HAMMERIOC_GET_VERSION: #14 0xc04c94de in hammer_vop_ioctl (ap=0xd75caad0) at /usr/src/sys/vfs/hammer/hammer_vnops.c:2305 2305 return(hammer_ioctl(ip, ap->a_command, ap->a_data, (kgdb) list 2300 hammer_vop_ioctl(struct vop_ioctl_args *ap) 2301 { 2302 struct hammer_inode *ip = ap->a_vp->v_data; 2303 2304 ++hammer_stats_file_iopsr; 2305 return(hammer_ioctl(ip, ap->a_command, ap->a_data, 2306 ap->a_fflag, ap->a_cred)); 2307 } 2308 #15 0xc03940ae in vop_ioctl (ops=0xd4ae7050, vp=0xc2b145e8, command=3234097160, data=0xc2a727f8 "", fflag=1, cred=0xc29a7768, msg=0xd75cacf0) at /usr/src/sys/kern/vfs_vopops.c:376 376 DO_OPS(ops, error, &ap, vop_ioctl); (kgdb) list 371 ap.a_data = data; 372 ap.a_fflag = fflag; 373 ap.a_cred = cred; 374 ap.a_sysmsg = msg; 375 376 DO_OPS(ops, error, &ap, vop_ioctl); 377 return(error); 378 } 379 #16 0xc0393bed in vn_ioctl (fp=0xd0291928, com=3234097160, data=0xc2a727f8 "", ucred=0xc29a7768, msg=0xd75cacf0) at /usr/src/sys/kern/vfs_vnops.c:938 938 error = VOP_IOCTL(vp, com, data, fp->f_flag, ucred, msg); (kgdb) list 933 } 934 *(int *)data = dev_dflags(vp->v_rdev) & D_TYPEMASK; 935 error = 0; 936 break; 937 } 938 error = VOP_IOCTL(vp, com, data, fp->f_flag, ucred, msg); 939 if (error == 0 && com == TIOCSCTTY) { 940 struct proc *p = curthread->td_proc; 941 struct session *sess; -- Sorry for my poor English.
文章代碼(AID): #1AiAbho0 (DFBSD_bugs)
討論串 (同標題文章)
文章代碼(AID): #1AiAbho0 (DFBSD_bugs)