SCSI tape error with cpio and 1.3.74 kernel

William M. Perkins (bill@grnwood.richmond.us.net)
Fri, 15 Mar 1996 20:40:16 -0500 (EST)


While trying to access a SCSI QIC150 tape using cpio to get
listings of what files were on a tape, I had the following
entries occur in the messages logfile:

Mar 15 19:29:04 grnwood kernel: st0: Error with sense data: extra data not valid Current error st09:00: sense key Illegal Request
Mar 15 19:29:04 grnwood kernel: Additional sense indicates Invalid command operation code
Mar 15 19:29:04 grnwood kernel: st0: Backing over filemark failed.
Mar 15 19:29:17 grnwood innd: s
Mar 15 19:34:01 grnwood kernel: scsi : aborting command due to timeout : pid 211206, scsi0, channel 0, id 0, lun 0 Write (6) 04 a7 98 02 00
Mar 15 19:34:01 grnwood kernel: scsi0 : DANGER : command running, can not abort.
Mar 15 19:34:07 grnwood kernel: scsi : aborting command due to timeout : pid 211207, scsi0, channel 0, id 0, lun 0 Read (6) 0c 9b 1c 08 00
Mar 15 19:34:07 grnwood kernel: scsi0 : found command 211207 in Linux issue queue
Mar 15 19:34:10 grnwood kernel: scsi : aborting command due to timeout : pid 211206, scsi0, channel 0, id 0, lun 0 Write (6) 04 a7 98 02 00
Mar 15 19:34:10 grnwood kernel: scsi0 : DANGER : command running, can not abort.
Mar 15 19:34:10 grnwood kernel: SCSI host 0 abort (pid 211206) timed out - resetting
Mar 15 19:34:10 grnwood kernel: SCSI bus is being reset for host 0.
Mar 15 19:34:10 grnwood kernel: scsi0 : DCMD|DBC=0x820b0000, DNAD=0x80858 (virt 0x00080858)
Mar 15 19:34:10 grnwood kernel: DSA=0xca21e8 (virt 0x00ca21e8)
Mar 15 19:34:10 grnwood kernel: DSPS=0x80848, TEMP=0xca20ac (virt 0x00ca20ac), DMODE=0x80
Mar 15 19:34:10 grnwood kernel: SXFER=0x0, SCNTL3=0x3
Mar 15 19:34:10 grnwood kernel: BSY phase=CMDOUT, 0 bytes in SCSI FIFO
Mar 15 19:34:10 grnwood kernel: STEST0=0x7
Mar 15 19:34:10 grnwood kernel: scsi0 : DSP 0x80850 (virt 0x00080850) ->
Mar 15 19:34:10 grnwood kernel: 0x80850 (virt 0x00080850) : 0x820b0000 0x00080848 (virt 0x00080848)
Mar 15 19:34:10 grnwood kernel: 0x80858 (virt 0x00080858) : 0x8f0b0000 0x00080a00 (virt 0x00080a00)
Mar 15 19:34:10 grnwood kernel: 0x80860 (virt 0x00080860) : 0x9e0b0000 0x00000000 (virt 0x00000000)
Mar 15 19:34:10 grnwood kernel: 0x80868 (virt 0x00080868) : 0x800b0000 0x00080888 (virt 0x00080888)
Mar 15 19:34:10 grnwood kernel: 0x80870 (virt 0x00080870) : 0x810b0000 0x000808e0 (virt 0x000808e0)
Mar 15 19:34:10 grnwood kernel: 0x80878 (virt 0x00080878) : 0x830b0000 0x00080c08 (virt 0x00080c08)
Mar 15 19:34:10 grnwood kernel: scsi0 : connected (SDID=0x4, SSID=0x84)
Mar 15 19:34:10 grnwood kernel: scsi0 : dsa at phys 0xca21e8 (virt 0x00ca21e8)
Mar 15 19:34:10 grnwood kernel: + 64 : dsa_msgout length = 1, data = 0xca202c (virt 0x00ca202c)
Mar 15 19:34:10 grnwood kernel: Identify disconnect allowed lun 0
Mar 15 19:34:10 grnwood kernel: + 60 : select_indirect = 0x3040000
Mar 15 19:34:10 grnwood kernel: + 56 : dsa_cmnd = 0x1ede0 result = 0xffff, target = 4, lun = 0, cmd = Request Sense 00 00 00 10 00
Mar 15 19:34:10 grnwood kernel: + 48 : dsa_next = 0x0
Mar 15 19:34:10 grnwood kernel: scsi0 target 4 : sxfer_sanity = 0x0, scntl3_sanity = 0x3
Mar 15 19:34:10 grnwood kernel: script : 0x78030300 0x0 0x78050000 0x0 0x90080000 0x0 0x0 0x0
Mar 15 19:34:10 grnwood kernel: scsi0 : saved data pointer at offset 0
Mar 15 19:34:10 grnwood kernel: scsi0 : active data pointer at offset 0
Mar 15 19:34:10 grnwood kernel: scsi0 : issue queue
Mar 15 19:34:10 grnwood kernel: scsi0 : dsa at phys 0xfe0080 (virt 0x00fe0080)
Mar 15 19:34:10 grnwood kernel: + 64 : dsa_msgout length = 525792, data = 0x0 (virt 0x00000000)
Mar 15 19:34:10 grnwood kernel: + 60 : select_indirect = 0xc0000004
Mar 15 19:34:10 grnwood kernel: + 56 : dsa_cmnd = 0x0
Mar 15 19:34:10 grnwood kernel: + 48 : dsa_next = 0x0
Mar 15 19:34:10 grnwood kernel: scsi0 : dsa at phys 0x52c080 (virt 0x0052c080)
Mar 15 19:34:10 grnwood kernel: + 64 : dsa_msgout length = 525792, data = 0x0 (virt 0x00000000)
Mar 15 19:34:10 grnwood kernel: + 60 : select_indirect = 0xc0000004
Mar 15 19:34:10 grnwood kernel: + 56 : dsa_cmnd = 0x0
Mar 15 19:34:10 grnwood kernel: + 48 : dsa_next = 0x0
Mar 15 19:34:10 grnwood kernel: scsi0 : schedule dsa array :
Mar 15 19:34:10 grnwood kernel: scsi0 : dsa at phys 0x986080 (virt 0x00986080)
Mar 15 19:34:10 grnwood kernel: + 64 : dsa_msgout length = 525792, data = 0x82214 (virt 0x00082214)
Mar 15 19:34:10 grnwood kernel: + 60 : select_indirect = 0xc0000004
Mar 15 19:34:10 grnwood kernel: + 56 : dsa_cmnd = 0x0
Mar 15 19:34:10 grnwood kernel: + 48 : dsa_next = 0x0
Mar 15 19:34:10 grnwood kernel: scsi0 : end schedule dsa array
Mar 15 19:34:10 grnwood kernel: scsi0 : reconnect_dsa_head :
Mar 15 19:34:10 grnwood kernel: scsi0 : end reconnect_dsa_head
Mar 15 19:34:10 grnwood kernel: The sti() implicit in a printk() prevents hangs
Mar 15 19:34:10 grnwood kernel: scsi : aborting command due to timeout : pid 211208, scsi0, channel 0, id 0, lun 0 scsi0 : target 0 accepting period 100ns offset 8 10.00MHz FAST SCSI-II
Mar 15 19:34:10 grnwood kernel: scsi0 : setting target 0 to period 100ns offset 8 10.00MHz FAST SCSI-II
Mar 15 19:34:10 grnwood kernel: Write (6) 05 05 36 02 00
Mar 15 19:34:10 grnwood kernel: scsi0 : did this command ever run?
Mar 15 19:34:14 grnwood kernel: scsi : aborting command due to timeout : pid 211207, scsi0, channel 0, id 0, lun 0 Read (6) 0c 9b 1c 08 00
Mar 15 19:34:14 grnwood kernel: scsi0 : did this command ever run?

Along with these entries, the cpio program is hung in "uninterruptible
sleep" most likely because on an incomplete SCSI command. I am using
a mcr53c810 SCSI controller and a Conner 2150 tape drive. I use this
tape drive to do back ups at least once a week and had not seen such
an error before. The tape drive was still usable, except for the hung
up copy of cpio:

USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
root 2140 0.1 3.5 964 512 ? D 19:32 0:00 cpio -itvB

I kill the xterm that that copy of cpio was running in to see if the
program would 'go away', but it did not. Kill had no effect.

I went back and completely re-read the tape without any errors.

Seems to me this tape error should have been handled better. Perhaps
an error being returned to the program to indicate an unrecoverable
error so that process can terminate properly.

Bill

-- 
William M. Perkins                       Internet - wperkins@us.net
The Greenwood                               or    - bill@cais.com
Commodore is dead.  Long lives the Amiga!  (AmigaOS/Linux/NetBSD)