看板 DFBSD_bugs 關於我們 聯絡資訊
Hi! I had something very similar on 95% full hammer FS with version of FS =3D 1= .. After upgrading it to v2 panics vent away. dennis@dfly (xterm) > uname -srip DragonFly 2.3.1-DEVELOPMENT i386 GENERIC As of 05/Jul/2009 Like: # hammer version-upgrade /mnt/big_plate 2 Also here are some interesting lines in /var/log/messages, possibly indicating corrupted media: Sep 16 01:22:42 dfly kernel: ad4: WARNING - WRITE_DMA UDMA ICRC error (retrying request) LBA=3D92046464 Sep 16 01:26:18 dfly syslogd: kernel boot file is /boot/kernel Sep 16 01:26:18 dfly kernel: ad4: FAILURE - device detached Sep 16 01:26:18 dfly kernel: subdisk4: detached Sep 16 01:26:18 dfly kernel: HAMMER(Share_Big): Critical error inode=3D-1 while flushing meta-data Sep 16 01:26:18 dfly kernel: HAMMER(Share_Big): Forcing read-only mode Sep 16 01:26:18 dfly kernel: HAMMER(Share_Big): Critical error inode=3D-1 while flushing meta-data Sep 16 01:26:18 dfly last message repeated 6 times Sep 16 01:26:18 dfly kernel: ad4: detached ....... Sep 16 01:26:18 dfly kernel: Fatal trap 12: page fault while in kernel mode Sep 16 01:26:18 dfly kernel: fault virtual address =3D 0xa4 Sep 16 01:26:18 dfly kernel: fault code =3D supervisor write, page not present ....... Sep 16 01:26:18 dfly kernel: processor eflags =3D interrupt enabled, resume, IOPL =3D 0 Sep 16 01:26:18 dfly kernel: current process =3D Idle Sep 16 01:26:18 dfly kernel: current thread =3D pri 46 (CRIT) ....... Sep 16 01:26:18 dfly kernel: Sep 16 01:26:18 dfly kernel: syncing disks... 439 HAMMER(Share_Big): Critical error inode=3D-1 while flushing meta-data 2009/9/16 Eugene <dfuser@medcom.com.ua>: > 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-DEVELOPME= NT > #1: Tue Sep 15 17:23:22 EEST 2009 > root@diana.medcom.com.ua:/usr/obj/usr/src/sys/CUSTOM =C2=A0i386 > > but the "panic" message greeted me this morning: > > panic: assertion: cursor->trans->sync_lock_refs > 0 in hammer_recover_cur= sor > 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=3D0xd75ca7a8) > =C2=A0 at /usr/src/sys/vfs/hammer/hammer_cursor.c:591 > 591 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 KKASSERT(cursor->trans->syn= c_lock_refs > 0); > (kgdb) list > 586 =C2=A0 =C2=A0 hammer_recover_cursor(hammer_cursor_t cursor) > 587 =C2=A0 =C2=A0 { > 588 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 int error; > 589 > 590 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 hammer_unlock_cursor(cursor= ); > 591 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 KKASSERT(cursor->trans->syn= c_lock_refs > 0); > 592 > 593 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* > 594 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0* Wait for the deadlo= ck to clear > 595 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/ > > (kgdb) print cursor > $1 =3D (hammer_cursor_t) 0xd75ca7a8 > (kgdb) print cursor->trans > $2 =3D (hammer_transaction_t) 0xd75caa74 > (kgdb) print cursor->trans->sync_lock_refs > $3 =3D 0 > > #12 0xc04ba517 in hammer_ioc_mirror_write (trans=3D0xd75caa74, ip=3D0xd2d= 28550, > =C2=A0 mirror=3D0xc2a727f8) at /usr/src/sys/vfs/hammer/hammer_mirror.c:46= 9 > 469 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 hammer_recover_cur= sor(&cursor); > (kgdb) list > 464 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0* Retry the current record on deadlock, otherwise > setup > 465 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0* for the next loop. > 466 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0*/ > 467 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= if (error =3D=3D EDEADLK) { > 468 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 while (error =3D=3D EDEADLK) { > 469 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 hammer_recover_cur= sor(&cursor); > 470 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D > hammer_cursor_upgrade(&cursor); > 471 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 } > 472 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= } else { > 473 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (error =3D=3D EALREADY) > > #13 0xc04b97dc in hammer_ioctl (ip=3D0xd2d28550, com=3D3234097160, > =C2=A0 data=3D0xc2a727f8 "", fflag=3D1, cred=3D0xc29a7768) > =C2=A0 at /usr/src/sys/vfs/hammer/hammer_ioctl.c:134 > 134 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D hammer_ioc_mirror_write(&trans, ip, > (kgdb) list > 129 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (str= uct hammer_ioc_mirror_rw > *)data); > 130 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= } > 131 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break; > 132 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 case HAMMERIOC_MIRROR_WRITE= : > 133 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= if (error =3D=3D 0) { > 134 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D hammer_ioc_mirror_write(&trans, ip, > 135 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (str= uct hammer_ioc_mirror_rw > *)data); > 136 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= } > 137 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= break; > 138 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 case HAMMERIOC_GET_VERSION: > > #14 0xc04c94de in hammer_vop_ioctl (ap=3D0xd75caad0) > =C2=A0 at /usr/src/sys/vfs/hammer/hammer_vnops.c:2305 > 2305 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return(hammer_ioctl(ip, ap-= >a_command, ap->a_data, > (kgdb) list > 2300 =C2=A0 =C2=A0hammer_vop_ioctl(struct vop_ioctl_args *ap) > 2301 =C2=A0 =C2=A0{ > 2302 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0struct hammer_inode *ip =3D= ap->a_vp->v_data; > 2303 > 2304 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0++hammer_stats_file_iopsr; > 2305 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return(hammer_ioctl(ip, ap-= >a_command, ap->a_data, > 2306 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ap->a_fflag, ap->a_cred)); > 2307 =C2=A0 =C2=A0} > 2308 > > #15 0xc03940ae in vop_ioctl (ops=3D0xd4ae7050, vp=3D0xc2b145e8, > =C2=A0 command=3D3234097160, data=3D0xc2a727f8 "", fflag=3D1, cred=3D0xc2= 9a7768, > =C2=A0 msg=3D0xd75cacf0) at /usr/src/sys/kern/vfs_vopops.c:376 > 376 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 DO_OPS(ops, error, &ap, vop= _ioctl); > (kgdb) list > 371 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ap.a_data =3D data; > 372 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ap.a_fflag =3D fflag; > 373 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ap.a_cred =3D cred; > 374 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ap.a_sysmsg =3D msg; > 375 > 376 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 DO_OPS(ops, error, &ap, vop= _ioctl); > 377 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return(error); > 378 =C2=A0 =C2=A0 } > 379 > > #16 0xc0393bed in vn_ioctl (fp=3D0xd0291928, com=3D3234097160, data=3D0xc= 2a727f8 > "", > =C2=A0 ucred=3D0xc29a7768, msg=3D0xd75cacf0) at /usr/src/sys/kern/vfs_vno= ps.c:938 > 938 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= error =3D VOP_IOCTL(vp, com, data, fp->f_flag, ucred, > msg); > (kgdb) list > 933 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 } > 934 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 *(int *)data =3D dev_dflags(vp->v_rdev) & > D_TYPEMASK; > 935 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 error =3D 0; > 936 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 break; > 937 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= } > 938 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= error =3D VOP_IOCTL(vp, com, data, fp->f_flag, ucred, > msg); > 939 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= if (error =3D=3D 0 && com =3D=3D TIOCSCTTY) { > 940 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct proc *p =3D curthread->td_proc; > 941 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 struct session *sess; > > -- > Sorry for my poor English. > --=20 Dennis Melentyev