GEOM panic on boot when ahd cannot find disk

From: Gavin Atkinson <gavin_at_ury.york.ac.uk>
Date: Thu, 22 May 2003 13:49:38 +0100 (BST)
Hi,

Freshly burned ISO of 5.1-BETA-20030522-JPSNAP booting off an IDE cd-rom
on the single processor version of
http://www.supermicro.com/PRODUCT/SUPERServer/SuperServer6012P-8.htm

The system fails to detect the drive (a Fujitsu MAP3367NC) attached to an
Adaptec AIC7902 controller, and GEOM panics over recursuing on a
non-recursive lock.

There seems to be three issues here to my untrained eye:

 - Firstly, why could the ahd driver not find the drive (Linux and Windows
2000 find it no problems),
 - secondly, why was GEOM called to create the disk when the detection had
errored out,
 - and thirdly, why did GEOM panic?

I will only have access to this machine for an hour or so (I was able to
boot FreeBSD on it as a favour, and it's getting installed for it's real
role as a Windows 2000 server later today) so I may not be able to try
patches for a while, if at all.

Hand transcribed, so forgive any errors...

ahd0: <Adaptec AIC7902 Ultra320 SCSI adapter> ...
aic7902: Ultra320 Wide Channel A, SCSI Id=7, PCI 33Mhz or 66Mhz, 512 SCBs
ahd1: <Adaptec AIC7902 Ultra320 SCSI adapter> ...
aic7902: Ultra320 Wide Channel B, SCSI Id=7, PCI 33Mhz or 66Mhz, 512 SCBs
...
Waiting 15 seconds for SCSI devices to settle
ses0 at ahd0 bus0 target 6 lun 0
ses0: <SUPER GEM318 0> Fixed Processor SCSI-2 device
ses0: 3.300 MB/s transfers
ses0: SAF-TE compliant device
Copied 32 bytes of sense data offset 12: 0x70 0x0 0x5 0x0 0x0 0x0 0x0 0x28 0x0 0x0 0x0 0x0 0x25 0x0 0x0 0x0 0x0 0x0 0x0 0x25 0x0 0x1 0x7 0x2 0x0 0x0 0x0 0x0 0x0 0x0 0x0
(da0:ahd0:0:0:0): READ CAPACITY CDB: 25 0 0 0 0 0 0 0 0 0
(da0:ahd0:0:0:0): ILLEGAL REQUEST  asc:25,0
(da0:ahd0:0:0:0): Logical unit not supported
(da0:ahd0:0:0:0): fatal error, failed to attach device
(da0:ahd0:0:0:0): lost device
(da0:ahd0:0:0:0): removing device entry
Lock GEOM topology not exclusively locked _at_ /usr/src/sys/geom/geom_disk.c:300
Lock GEOM topology not exclusively locked _at_ /usr/src/sys/geom/geom_subr.c:119
malloc() of "32" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "16" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "16" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
Lock GEOM topology not exclusively locked _at_ /usr/src/sys/geom/geom_subr.c:270
malloc() of "32" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "16" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
malloc() of "128" with the following non-sleepablelocks held:
exclusive sleep mutex GEOM orphanage r = 0 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
recursed on non-recursive lock (sleep mutex) GEOM orphanage _at_ /usr/src/sys/geom/geom_event.c:262
first aquired _at_ /usr/src/sys/geom/geom_event.c:210
panic: recurse

db> trace
panic()
witness_lock()
_mtx_lock_flags()
g_post_event_x()
g_post_event()
g_new_providerf()
g_disk_create()
g_cancel_event()
disk_destroy()
dacleanup()
camperiphfree()
cam_periph_release()
cam_periph_unlock()
dadone()
camisr()
ithread_loop()
fork_exit()
fork_trampoline()

db> show locks
exclusive sleep mutex GEOM orphanage r = 1 (0xc05ba640) locked _at_ /usr/src/sys/geom/geom_event.c:210
(giant is also locked)

Gavin
Received on Thu May 22 2003 - 03:49:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:08 UTC