Re: panic after removing usb flash drive

From: Ben Kaduk <minimarmot_at_gmail.com>
Date: Wed, 31 Aug 2005 03:04:29 +0000
On 8/31/05, Kyle Brooks <captinsmock_at_columbus.rr.com> wrote:
> 
> umass0: LEXAR MEDIA JUMPDRIVE2, rev 2.00/1.25, addr 2
> umass0: at uhub4 port 6 (addr 2) disconnected
> panic: vm_fault: fault on nofault entry, addr: deadc000
> 
> kernel:
> 
> FreeBSD 7.0-CURRENT #2: Mon Aug 29 00:39:21 UTC 2005
> 
> problem:
> 
> kernel panics when usb flash drive is removed
> 
> backtrace:
> 
> #0 doadump () at pcpu.h:165
> #1 0xc068610e in boot (howto=260)
> at /usr/src/sys/kern/kern_shutdown.c:397
> #2 0xc0685b92 in panic (
> fmt=0xc090e46c "vm_fault: fault on nofault entry, addr: %lx")
> at /usr/src/sys/kern/kern_shutdown.c:553
> #3 0xc0812de1 in vm_fault (map=0xc1060000, vaddr=3735928832,
> fault_type=2 '\002', fault_flags=0)
> at /usr/src/sys/vm/vm_fault.c:884
> #4 0xc0888807 in trap_pfault (frame=0xe6a06bf0, usermode=0,
> eva=3735929110)
> at /usr/src/sys/i386/i386/trap.c:741
> #5 0xc0888d04 in trap (frame=
> {tf_fs = 8, tf_es = -1063649240, tf_ds = 40, tf_edi = -993875968,
> tf_esi = -1014223872, tf_ebp = -425694000, tf_isp = -425694180, tf_ebx =
> -1063640044, tf_edx = -993875900, tf_ecx = 0, tf_eax = -559038242,
> tf_trapno = 12, tf_err = 2, tf_eip = -1069194040, tf_cs = 32, tf_eflags
> = 66050, tf_esp = -1063640032, tf_ss = 0})
> at /usr/src/sys/i386/i386/trap.c:442
> #6 0xc08745ba in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> #7 0x00000008 in ?? ()
> #8 0xc09a0028 in atdma_acpi_driver_mod ()
> #9 0x00000028 in ?? ()
> #10 0xc4c2a800 in ?? ()
> #11 0xc38c2c00 in ?? ()
> #12 0xe6a06cd0 in ?? ()
> #13 0xe6a06c1c in ?? ()
> ---Type <return> to continue, or q <return> to quit---
> #14 0xc09a2414 in xsoftc ()
> #15 0xc4c2a844 in ?? ()
> #16 0x00000000 in ?? ()
> #17 0xdeadc0de in ?? ()
> #18 0x0000000c in ?? ()
> #19 0x00000002 in ?? ()
> #20 0xc04564c8 in camisr (V_queue=0xc09a2414)
> at /usr/src/sys/cam/cam_xpt.c:7066
> #21 0xc066f84e in ithread_loop (arg=0xc356fa80)
> at /usr/src/sys/kern/kern_intr.c:545
> #22 0xc066e808 in fork_exit (callout=0xc066f665 <ithread_loop>, arg=0x0,
> frame=0x0) at /usr/src/sys/kern/kern_fork.c:789
> #23 0xc087461c in fork_trampoline ()
> at /usr/src/sys/i386/i386/exception.s:208
> 
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 

This is the expected behaviour if you didn't unmount the filesystem on the 
thumbdrive before removing it. There was some discussion on this a while ago 
(but I don't seem to be able to find the exact posts), but the general idea 
is that the kernel has no idea in what state the actual physical medium 
(disc) is/was in after being pulled, and may have some stale buffers holding 
data that got written to disk. It doesn't know what to do with this data, or 
how to treat requests to that device, so it panics.

Of course, if you did unmount the filesystem before pulling the drive, then 
this shoule be looked into.

Ben Kaduk
Received on Wed Aug 31 2005 - 01:04:31 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:42 UTC