On Sun, Sep 15, 2013 at 6:17 AM, C. Bensend <be...@bennyvision.com> wrote: >> For the two crashes that I've been able to capture some output >> from (one from an IP KVM, one from /var/log/messages after setting >> ddb.panic=0), I've seen: >> >> uvm_fault(0xffffffff81cf2b20, 0xffff800000cef000, 0, 2) -> e >> kernel: page fault trap, code=0 >> Stopped at memmove+0x16: repe movsq (%rsi),%es:(%rdi) >> >> and >> >> reboot after panic: trap type 8, code=0, pc=ffffffff81292dff > > Whoops - the hosting company caught some of the panic message before > it rebooted this morning (retyped from a screenshot):
This part: > VOP_FSYNC() at VOP_FSYNC+0x2f > ffs_sync_vnode() at ffs_sync_vnode+0x77 > vfs_mount_foreach_vnode() at vfs_mount_foreach_vnode+0x38 > ffs_sync() at ffs_sync+0x83 > sys_sync() at sys_sync+0xa1 > vfs_syncwait() at vfs_syncwait+0x50 > vfs_shutdown() at vfs_shutdown+0x32 > boot() at boot+0x17f > panic() at panic+0xf6 is from the "boot crash", not the original crash. Looking at the original crash: > --- trap (number 8) --- > ffs_update() at ffs_update+0x19f That points to the math in the ino_to_fsba() macro in this like of ffs_update() error = bread(ip->i_devvp, fsbtodb(fs, ino_to_fsba(fs, ip->i_number)), (int)fs->fs_bsize, &bp); It's trying to calculate the block address of the inode so that it can update the timestamps in it and divided by zero. That means the in-memory copy of the superblock had zeros in on other another member. If the on-disk superblock had zeros there, I would expected fsck to catch it, or for it to crash earlier, but maybe a forced fsck is in order. Otherwise, something's writing through a bogus pointer in the kernel... Philip Guenther