crashed without a disk attached!

Help
2004-09-16
2004-09-16
  • Yee-Ting Li

    Yee-Ting Li - 2004-09-16

    hi,

    i was happily running my mac, when all the sudden it just hung... all i was doing was exiting a filename in itunes (file stored on my linux nfs store)!

    when i rebooted, i looked at panic.log and found this at the exact time of the crash:

    panic(cpu 0): ext2_cmap: allocation requested inside a block (possible filesystem corruption): qbmask=4095, inode=8781863, offset=98827264, blkoff=3072
    Latest stack backtrace for cpu 0:
          Backtrace:
             0x000836E4 0x00083BC8 0x0001EDA4 0x1FCB26A8 0x000B82DC 0x000BBACC 0x000B8A08 0x000B8B88
             0x000BAB40 0x000BA5E0 0x1FCAC3F8 0x000CDFCC 0x0022150C 0x00221324 0x002452B4 0x00094200
             0xA2A23475
          Kernel loadable modules in backtrace (with dependencies):
             net.sourceforge.ext2fs.fs.ext2(1.2.1)@0x1fc9f000
    Proceeding back via exception chain:
       Exception state (sv=0x2E02B000)
          PC=0x9000EACC; MSR=0x0000D030; DAR=0x00FA8E40; DSISR=0x42000000; LR=0x00002EF8; R1=0xBFFFF8F0; XCP=0x00000030 (0xC00 - System call)

    Kernel version:
    Darwin Kernel Version 7.5.0:
    Thu Aug  5 19:26:16 PDT 2004; root:xnu/xnu-517.7.21.obj~3/RELEASE_PPC

    considering i didn't have a ext2 disk even attached to the machine at the time, i can't believe this happened! i hadn't even plugged in a ext3 disk during the this time since the machine was booted before the crash!

    i subsequently removed the kernel modules in case it happens again!

    Yee.

     
    • Brian Bergstrand

      Actually, that is truly impossible. ext2_cmap() is called by the kernel to obtain a block address from a file offset. So not only does a filesystem have to be mounted, but file I/O on that filesystem has to be happening. There is no way this can happen otherwise. Just to be sure, I decoded part of the panic log, and sure enough, a read request was made:

      ...
      0xbab40 <cluster_read+1476>
      0xba5e0 <cluster_read+100>
      0x1FCAC3F8 <ext2_read>
      0xcdfcc <vn_rdwr+1016>
      0x22150c <pread+452>
      0x221324 <read+96>
      0x2452b4 <unix_syscall+580>

      Check the panic time again and make sure the day is the same as well as the time. It may be that this was the last panic in the log, and the one you actually experienced did not get logged (this can happen when things go truly wrong).

      Also, this specific panic is always related to USB drives. If you use Firewire or IDE, the problem never happens. I'm not sure why, but this is the case. It seems most USB drives work, but a few unlucky ones cause this problem.

      HTH.

       
      • Yee-Ting Li

        Yee-Ting Li - 2004-09-16

        i thought i was very wierd also, but it is definately at the same time that the machine hung - triple checked :( it's a bit hard to prove (and the more i write the more of an idiot i look!), but i really did not have any external hard disks connected at the time! and my internal one is all hfs+.

        if it happens again, i'll let you know...

        Yee.

         

Log in to post a comment.