Re: Repatable panic in 7.0-beta1

From: Scott Long <scottl_at_samsco.org>
Date: Thu, 25 Oct 2007 14:35:40 -0600
This sounds like a known problem with CAM not handling SIM removal
very well.  It almost looks like your USB device detaches itself in
the middle of attaching when you plug it in.  CAM got caught trying
to probe the device when the detach happened, leading to a race that
caused the panic.

I don't have a quick solution for this, I'm afraid.  Part of the problem
is the incorrect design in the umass module, and part of the problem is
that CAM was never hardened against this kind of incorrect design.
Fixing it is a fairly major project.

Scott



Svein Halvor Halvorsen wrote:
> I get this repeatable panic in 7.0-BETA1 whenever I connect my new
> USB external hdd. This is the backtrace from kgdb on the crash file.
> There is no problem if I boot the computer with the drive attached,
> but if I unplug and replug in, it will panic again, like it always
> does when I plug it into a running system.
> 
> I'll gladly provide more info, if someone tells me what to do.
> 
> 
> #0  doadump () at pcpu.h:195
> #1  0xc074ff67 in boot (howto=260) at
> /usr/src/sys/kern/kern_shutdown.c:409
> #2  0xc0750229 in panic (fmt=Variable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:563
> #3  0xc0a131fc in trap_fatal (frame=0xd8ed9974, eva=0) at
> /usr/src/sys/i386/i386/trap.c:872
> #4  0xc0a13480 in trap_pfault (frame=0xd8ed9974, usermode=0, eva=0)
> at /usr/src/sys/i386/i386/trap.c:785
> #5  0xc0a13df5 in trap (frame=0xd8ed9974) at
> /usr/src/sys/i386/i386/trap.c:463
> #6  0xc09f9e1b in calltrap () at /usr/src/sys/i386/i386/exception.s:139
> #7  0xc0466f6b in xpt_done (done_ccb=0xc34cf800) at
> /usr/src/sys/cam/cam_xpt.c:4856
> #8  0xc046d21e in probedone (periph=0xc4d3fe00, done_ccb=Variable
> "done_ccb" is not available.
> ) at /usr/src/sys/cam/cam_xpt.c:6331
> #9  0xc0468fb1 in camisr_runqueue (V_queue=Variable "V_queue" is not
> available.
> ) at /usr/src/sys/cam/cam_xpt.c:7255
> #10 0xc046d82f in xpt_bus_deregister (pathid=1) at
> /usr/src/sys/cam/cam_xpt.c:4442
> #11 0xc06c7690 in umass_cam_detach_sim (sc=0xc48f8000) at
> /usr/src/sys/dev/usb/umass.c:2694
> #12 0xc06c773d in umass_detach (self=0xc39c6a00) at
> /usr/src/sys/dev/usb/umass.c:1542
> #13 0xc0770f38 in device_detach (dev=0xc39c6a00) at device_if.h:212
> #14 0xc06cd932 in usb_disconnect_port (up=0xc34b6c30,
> parent=0xc34caa80) at /usr/src/sys/dev/usb/usb_subr.c:1380
> #15 0xc06c4c0e in uhub_explore (dev=0xc3489c00) at
> /usr/src/sys/dev/usb/uhub.c:462
> #16 0xc06cbae5 in usb_discover (v=Variable "v" is not available.
> ) at /usr/src/sys/dev/usb/usb.c:724
> #17 0xc06ccad7 in usb_event_thread (arg=0xc34a0d00) at
> /usr/src/sys/dev/usb/usb.c:440
> #18 0xc0730549 in fork_exit (callout=0xc06cca20 <usb_event_thread>,
> arg=0xc34a0d00, frame=0xd8ed9d38)
>     at /usr/src/sys/kern/kern_fork.c:796
> #19 0xc09f9e90 in fork_trampoline () at
> /usr/src/sys/i386/i386/exception.s:205
> 
> 
> uname -a says:
> 
> FreeBSD weld.ej2.thelosingend.net 7.0-BETA1 FreeBSD 7.0-BETA1 #1:
> Wed Oct 24 10:08:38 CEST 2007
> sveinhal_at_weld.ej2.thelosingend.net:/usr/obj/usr/src/sys/GENERIC  i386
> 
> 
> _______________________________________________
> 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"
Received on Thu Oct 25 2007 - 18:36:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:20 UTC