DragonFly bugs List (threaded) for 2009-09
DragonFly BSD
DragonFly bugs List (threaded) for 2009-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [issue1504] hammer crash on cleanups


From: Eugene <dfuser@xxxxxxxxxxxxx>
Date: Wed, 16 Sep 2009 11:30:01 +0000

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.



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