Errors during probe cause inifinite loop in sbp

Nate Lawson nate at root.org
Mon May 26 23:04:03 PDT 2003


On Sun, 25 May 2003, Scott Long wrote:
> Ok, the drive is returning a sense code of 'Invalid Field in CDB'.
> This means that it does support the INQUIRY command, but it doesn't like
> one of the fields that CAM is putting into it.  Without the full sense
> data, it's impossible to know which field it doesn't like.  Maybe Ken
> knows what to twiddle to find this out.
> I agree that there is a general bug in CAM where during device
> probing it can get stuck in an infinite retry loop.  It's possible that
> this is being triggered by the device having an excess of queued error
> status and CAM not being smart enough to dequeue all of it before trying
> to do the inquiry.

"Invalid field in CBD" is the proper error if you don't support EVPD data
in inquiry (that's the 0x80 in the CDB).

> > May  7 17:21:58 falcon kernel: sbp0:0:0 LOGIN
> > May  7 17:21:58 falcon kernel: sbp: alloc 1 xfer
> > May  7 17:21:58 falcon kernel: sbp0:0:1 LOGIN
> > May  7 17:21:58 falcon kernel: sbp0:0:2 LOGIN
> > May  7 17:21:58 falcon kernel: sbp0:0:0 login: len 12, ID 0, cmd 0000fffff0010000, recon_hold 0
> > May  7 17:21:58 falcon kernel: sbp0:0:0 sbp_busy_timeout
> > May  7 17:21:58 falcon kernel: sbp: alloc 2 xfer
> > May  7 17:21:58 falcon kernel: sbp0:0:0 sbp_agent_reset
> > May  7 17:21:58 falcon kernel: sbp0:0:0 sbp_do_attach
> > May  7 17:21:58 falcon kernel: sbp0:0:1 login: len 12, ID 1, cmd 0000fffff0020000, recon_hold 0
> > May  7 17:21:58 falcon kernel: sbp0:0:1 sbp_busy_timeout
> > May  7 17:21:58 falcon kernel: sbp0:0:1 sbp_agent_reset
> > May  7 17:21:58 falcon kernel: sbp0:0:1 sbp_do_attach
> > May  7 17:21:58 falcon kernel: sbp0:0:2 login: len 12, ID 2, cmd 0000fffff0040000, recon_hold 0
> > May  7 17:21:58 falcon kernel: sbp0:0:2 sbp_busy_timeout
> > May  7 17:21:58 falcon kernel: sbp0:0:2 sbp_agent_reset
> > May  7 17:21:58 falcon kernel: sbp0:0:2 sbp_do_attach
> > May  7 17:22:00 falcon kernel: sbp0:0:0 sbp_cam_scan_target
> > May  7 17:22:00 falcon kernel: sbp0:0:0 ORB status src:0 resp:0 dead:1 len:3 stat:c orb:01808b4fc
> > May  7 17:22:00 falcon kernel: sbp0:0:0 Request aborted

I don't know about the above messages (fw-specific).

> > May  7 17:22:00 falcon kernel: sbp0:0:0 XPT_SCSI_IO: cmd: 00 00 00 00 00 00 00 00 00 00, flags: 0xc0, 6b cmd/0b data/32b sense
> > May  7 17:22:00 falcon kernel: sbp0:0:0 SCSI status 2 sfmt 0 valid 0 key 2 code 3a qlfr 0 len 3

TUR command, response CHECK COND, reason medium not present.

> > May  7 17:22:00 falcon kernel: sbp0:0:0 sbp_agent_reset
> > May  7 17:22:00 falcon kernel: sbp0:0:0 sbp_cam_scan_lun
> > May  7 17:22:00 falcon kernel: sbp0:0:0 sbp_do_attach
> > May  7 17:22:00 falcon kernel: sbp0:0:1 ORB status src:0 resp:0 dead:1 len:3 stat:c orb:0180ea3c4
> > May  7 17:22:00 falcon kernel: sbp0:0:1 Request aborted
> > May  7 17:22:00 falcon kernel: sbp0:0:1 XPT_SCSI_IO: cmd: 12 21 80 00 ff 00 00 00 00 00, flags: 0x40, 6b cmd/255b data/18b sense
> > May  7 17:22:00 falcon kernel: sbp0:0:1 SCSI status 2 sfmt 0 valid 0 key 5 code 24 qlfr 0 len 3

INQUIRY with EVPD set, alternate lun, invalid field in cdb (i.e. serial
number data not present.)

> > May  7 17:22:00 falcon kernel: sbp0:0:1 sbp_agent_reset
> > May  7 17:22:00 falcon kernel: sbp0:0:1 sbp_do_attach
> > May  7 17:22:02 falcon kernel: sbp0:0:0 sbp_cam_scan_target
> > May  7 17:22:02 falcon kernel: sbp0:0:0 ORB status src:0 resp:0 dead:1 len:3 stat:c orb:01808b634
> > May  7 17:22:02 falcon kernel: sbp0:0:0 Request aborted
> > May  7 17:22:02 falcon kernel: sbp0:0:0 XPT_SCSI_IO: cmd: 25 00 00 00 00 00 00 00 00 00, flags: 0x40, 10b cmd/8b data/32b sense
> > May  7 17:22:02 falcon kernel: sbp0:0:0 SCSI status 2 sfmt 0 valid 0 key 2 code 3a qlfr 0 len 3
> > May  7 17:22:02 falcon kernel: sbp0:0:0 sbp_agent_reset

Read Capacity, check condition, medium not present.

Nothing here looks like it sent you into the loop.

-Nate


More information about the freebsd-firewire mailing list