Date: Mon, 12 Jul 1999 17:33:51 -0700 (PDT) From: Matthew Jacob <mjacob@feral.com> To: Juergen Lock <nox@jelal.kn-bremen.de> Cc: freebsd-bugs@FreeBSD.ORG Subject: Re: kern/11945: tape problems on -stable, mt bl(ocksize), mt erase and hanging SCSI bus Message-ID: <Pine.BSF.4.05.9907121713080.8020-100000@semuta.feral.com> In-Reply-To: <199907130010.RAA87312@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Okay- I took the time to analyze this better. Sorry for the delay.
This bug report mentions several items.
> 1. mt bl(ocksize) stopped working, regardless what blocksize
> i try i only get
>
> mt: /dev/nrsa0: blocksize: Invalid argument
>
> and on the console:
>
> Apr 27 16:00:47 saturn /kernel: (sa0:ncr0:0:5:0): MODE SELECT(06).
>CDB: 15 0 0 0
> c 0
> Apr 27 16:00:47 saturn /kernel: (sa0:ncr0:0:5:0): ILLEGAL REQUEST
>asc:26,0
> Apr 27 16:00:47 saturn /kernel: (sa0:ncr0:0:5:0): Invalid field in
>parameter lis
> t sks:8f,4
Clearly this works for me and others in a variety contexts. The key
point here is to try and figure out why this particular tape drive/tape
doesn't like this- this is offset 4 of the parameters, and this is the
mode data:
0x00 0x00 0x10 0x08 0x7f 0x00 0x00 0x00 0x00 0x00 0x02 0x00
So, this so called SCSI-2 device,
sa0: <WANGTEK 5525ES SCSI 73Y1> Removable Sequential Access SCSI-2 device
can't cope with the SCSI-2 density code that means "use the same density
as was set before". This is around line 2520:
if (params_to_set & SA_PARAM_DENSITY) {
mode_blk->density = density;
} else if (softc->scsi_rev > SCSI_REV_CCS) {
mode_blk->density = SCSI_SAME_DENSITY;
} else {
mode_blk->density = softc->media_density;
}
try changing the code to:
if (params_to_set & SA_PARAM_DENSITY) {
mode_blk->density = density;
} else {
mode_blk->density = softc->media_density;
}
and see what happens.
>
> 2. mt erase fails similarly (I don't have the syslog right
> now, sorry)
Possibly due to the same cause.
>
> 3. depending on factors i haven't found out, trying to read
> after a BLANK CHECK on some tapes ends up hanging the entire
> SCSI bus, printing this on the console:
>
> ncr0: SCSI phase error fixup: CCB already dequeued (0xf07e1200)
>
> followed by several of
> ncr0: timeout nccb=0xf0xxxxxx (skip)
>
> and
>
> vm_fault: pager read error, pid xxx (process)
This sounds like a bug in the ncr driver to me.
>
> CAMDEBUG tells me on the tapes where it hangs it does
> five LOAD UNLOAD commands (the first rewinds the tape) while
> normally it does only one LOAD UNLOAD. I can send the full
> CAMDEBUG output of the working case if that helps...
This was an attempt to try and rerun commands that *can* be rerun if they
fail. All of the commands that have a known tape position at the end of
the command can do this, but perhaps should not.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9907121713080.8020-100000>
