[sane-devel] Mandrake 9.1 and ServeRAID 5i

abel deuring a.deuring@satzbau-gmbh.de
Mon, 15 Sep 2003 15:32:50 +0200

Raf Schietekat wrote:
> Raf Schietekat (that's me) accidentally sent this only to Abel:

...and here's my answer I've already sent to Raf:

Raf Schietekat wrote:

> > As already mentioned, I have never worked mit Mandrake, so I can't make
> > any comment on scannerdrake based on real knowledge of this program. But
> > I assume that it tries to identify scanners either by calling the
> > standard Sane programs sane-find-scanner or scanimage, or it uses
> Comment #6 by Thierry says 'basically harddrake2 uses scannerdrake that
> uses "LC_ALL=C sane-find-scanner -q"', which led me to come here.

Ok. Obviously i did not not read this web page very carefully...

> >[...]
> > Since scanimage may load many backends, and since I haven't read the
> > source code of every Sane backend, I am not 100%, but "only" 99% sure,
> > that these backend will not try to work any longer with the processor
> > devices belonging to the RAID controller. It is highly unlikely that
> > "IBM YGHv3 S2" is mentioned as the vendor and/or device IDs anywhere in
> > a Sane backend. Hence it seems that your Raid controller does not like
> > INQUIRY commands sent too often -- which would be in violation of the
> > SCSI standard. SCSI devices should be able to respond to a few commands
> > like INQUIRY and TEST UNIT READY under any circumstances. And especially
> > these two commands should not alter the state of SCSI device in any way.
> So is it basically the card's fault? Seems rather a silly defect... I
> wonder what IBM would say about that.

Let's ask them ;) 

> >
> >[...]
> > Do you see any messages from the Linux driver of the RAID controller? If
> I have no more information than this, and no real desire to provoke
> another failure unless I know it will be worthwhile.
> > the controller or the driver becomes confused, file system errors are
> > unavoidable, I think.
> Hmm...
> >
> >[...]
> > I think it is highly unlikely that a Sane program or backend or this
> > special Mandrake "scanner search and installation" program is to blame
> > for your problem. If you need your server up and running quite soon, I'd
> Can you confirm that all that sane-find-scanner does is query the card,
> with only requests that must be safe according to the SCSI standard?

"grep sanei_scsi_cmd sane-find-scanner.c" shows that sanei_scsi_cmd is
called only two times; in both cases an INQUIRY command is sent to the
device. And INQUIRY commands are supposed to be "safe". From the SCSI 2
draft (available at http://www.t10.org/ftp/t10/drafts/s2/s2-r10l.pdf),
section 7.5, Command processing considerations and exception conditions:

  "The present operating definition of a logical unit with respect to an 
  initiator can be determined at any time by execution of an INQUIRY

(the page number printed in the document is 95; select page 131 in the
page selection field of the acrobat reader) There are one or two other
places in this document which say that INQUIRY commands may be issued at
any time. (a bit of background: A SCSI device responds to an INQUIRY
command by sending things like device type - disk/tape/CDROM/scanner...
-, the vendor and model name, firmware revision and some other details
about the device and its capabilities. This allows the operation system
or an application to decide how to deal with the device. Sane needs
mainly the vendor and model information in order to decide, which
backend to use. Issueing the INQUIRY command should not affect the state
of a SCSI device in any way.)

> > recommend to use another RAID controller. (sorry, I don't have positive
> > hint for a certain model...)
> That's not a very attractive option. I have run a full diagnostic, but
> that was IBM's own. Is there another diagnostic that will prove the
> hardware is the guilty part, without provoking the response "Mandrake is
> not supported"? Is SANE in Red Hat (which is supported by IBM)?

well, Sane is free software, so you could ask them to reproduce the
problem by running sane-find-scanner on one of their own systems.
Setting SANE_DEBUG_SANEI_SCSI is an additional check to see, which
commands are really sent to a SCSI device. And the Linux driver of the
adapter may have its own debug tools to log SCSI commands.

> > Of course, this test will only make sense, if the Mandrake software
> > either calls sane-find-scanner or scanimage, or if it uses the
> > sanei_scsi library.
> I wish I had the time, or a spare test system. Maybe...

Yes, running tests likle those we're talking about on a system that
should soon go into production state is a bit qustionable. OTOH, if my
suspicion is right that sending too many INQUIRY commands causes the
controller or its Linux driver to crash, your system would not be
production-ready anyway...