Bug 102943

Summary: LTC3934-3590 Tape Drive display message non-functional.
Product: Red Hat Enterprise Linux 3 Reporter: IBM Bug Proxy <bugproxy>
Component: kernelAssignee: Doug Ledford <dledford>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: coughlan
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-10-02 00:44:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
scsi bad
none
scsi good none

Description IBM Bug Proxy 2003-08-22 21:09:37 UTC
The following has be reported by IBM LTC:  
3590 Tape Drive display message non-functional.
Please fill in each of the sections below.

Hardware Environment:
Adaptec SCSI card on xSeries.  Specifically AHA-2944, although I do not believe
it's specific to that card.  Tape drive is the 3590 which is the only one I have
access to that you can set the display on.  I do not believe it's specific to
this drive either.

Software Environment:
Adaptec driver version: aic7xxx 6.2.36
Tested with IBMtape versions 1.3.5 through .8 Tested on redhat 7.3 and RHEL 3
Beta 1.  Kernel versions 2.4.18 through 21.
Tested Adaptec driver version: 6.2.6 and verified the problem did not exist at
this point.

Steps to Reproduce:
1. Open tape drive with IBMtapeutil
2. Attempt to set the display
3.

Actual Results:
Display does not get set.  Errors from the Adaptec driver in the log.

Expected Results:
Display set.  No errors.

Additional Information:
Here are the logs:
Failure case:
Adaptec Logs:

Aug  7 12:34:56 brake kernel: (scsi0:A:4:0): No or incomplete CDB sent to device.
Aug  7 12:34:56 brake kernel: (scsi0:A:4:0): Protocol violation in Message-in
phase.  Attempting to abort.
Aug  7 12:34:56 brake kernel: (scsi0:A:4:0): Abort Message Sent
Aug  7 12:34:56 brake kernel: (scsi0:A:4:0): SCB 3 - Abort Completed.

IBMtaped Logs:

IBMtaped  Thu Aug  7 12:34:57 2003
   Scsi 00 Channel 00 Id 04 Lun 00
   IBMTapeDeviceIoControl() STIOCDM command
      Scsi Command : C0 00 00 00 18 00 
      Data         : 00 20 00 00 00 00 00 10 4E 45 57 54 45 53 54 20 
                     20 20 20 20 20 20 20 20 
      Status Code  : 00 07 00 00 
   Returned Errno  : 5
IBMtaped  Thu Aug  7 12:34:57 2003
   Scsi 00 Channel 00 Id 04 Lun 00
   IBMTapeDeviceIoControl() SIOC_REQSENSE command
      Scsi Command : 00 00 00 00 00 00 
      Status Code  : 00 00 00 00 
      Scsi Command : 03 00 00 00 64 00 
      Status Code  : 00 00 00 00 
      Data         : 70 00 00 00 00 00 00 58 00 00 00 00 00 00 FF 08 
                     00 00 01 14 00 00 00 91 00 09 00 00 00 00 00 00 
                     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
                     00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 
                     00 00 00 00 00 00 00 00 35 37 31 20 20 20 20 00 
                     00 00 4A 00 00 00 00 00 00 00 00 00 00 00 00 00 
                     00 00 00 00 
   Returned Errno  : 0

Normal case:
IBMtaped  Thu Aug  7 13:06:12 2003
   Scsi 00 Channel 00 Id 04 Lun 00
   IBMTapeDeviceIoControl() STIOCDM command
      Scsi Command : C0 00 00 00 18 00 
      Data         : 00 40 00 00 00 00 00 10 44 45 4E 45 42 45 49 4D 
                     20 20 20 20 20 20 20 20 
      Status Code  : 00 00 00 00 
   Returned Errno  : 0

No Adaptec logs are generated in that case of course.This has halted customer
testing of our IBMtape driver.  It's important to get
this fixed quickly.Jay - I have a couple of questions for you:

1. Did this problem happen on RHAS 2.1 ?  With the latest errata kernel on
   RHAS 2.1 ?

2. We don't have a tape drive around in our lab.  Can we have remote access
   to your system with tape drive ?  Would this help ?

3. Where are you physically located ?

Thanks.Jay - can you answer my questions above ?  Thanks.Created an attachment
(id=1427)
Antec trace of problem
Created an attachment (id=1428)
Antec trace of normal case
Glen/Greg - I just talked to Jay (bug submitter) on the phone.  Adaptec is 
working on a fix for this bug - they already know the root cause.  This 
6.2.36 driver only ships with RHEL 3 beta1.  RHAS 2.1 was shipped with 
the 6.2.6 driver which is working fine.  We want to let Red Hat know about 
this bug with the 6.2.36 driver and they need to work with Adaptec to get 
the driver with the fix into RHEL 3.  Thanks.

Comment 1 IBM Bug Proxy 2003-08-22 21:16:16 UTC
Created attachment 93869 [details]
scsi bad

Comment 2 IBM Bug Proxy 2003-08-22 21:17:02 UTC
Created attachment 93870 [details]
scsi good

Comment 3 IBM Bug Proxy 2003-08-27 18:37:37 UTC
------ Additional Comments From denebeim.com  2003-27-08 13:31 -------
After seeing the debug messages from the Adaptec driver, Jay has found out that
this problem was caused by the Linux middle layer scsi driver scsi_mod.o instead
of  the new Adaptec driver.   Our IBMtape sets CDB length to be 0 to let the
scsi_mod.o to autodetect the length.  The scsi_mod.o has a static constant array
to map the length for each SCSI command.  For the vendor defined Display Message
command, scsi_mod computes its length to be 10, which is wrong.  The new Adaptec
driver detects this error, and aborts the command.  The previous Adaptec driver
does not have this error check function, so the CDB is passed to the target, and
the command succeeds.

We have decided to set CDB length to be 6 for Display Message command before we
pass this command to the scsi_mod.o.  Our unit test on this change indicates
that the command works with the new Adaptec driver.  We also confirmed that this
change won't affect the Qlogic HBA driver. 

Comment 4 Tim Burke 2003-10-02 00:44:46 UTC
Closing this one out because there's a workaround available as described in the
prior comment.