[Info-vax] axpbox crashed when logged out.
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Nov 18 10:05:29 EST 2020
On 2020-11-18 03:34:02 +0000, Timothy Stark said:
> I discovered a bug in axpbox when I attempted to log out. Axpbox
> crashed with messages:
>
>
> Exception in SYM thread: Not implemented: pci0.1(sym53c810).disk0.4(file):
> Unknown SCSI command 0x1b.
>
> : /home/sword7/axpbox/src/src/Disk.cpp, line 1495.
>
> Emulator Failure: Threading error: SYM thread has died:
> /home/sword7/axpbox/src/src/Sym53C810.cpp, line 1501
>
> Stop threads: cpu0 srl0 sym ali kbd
>
> Freeing memory in use by system...
>
> pci0.1(sym53c810).disk0.0(file): Closing file.
>
>
>
> I checked SCSI reference for command 0x1B and it performs
> loading/unloading or starting/stopping unit. I believe that logout
> routines attempted to unload CD om DKA400 (53C810).
>
> I was able reproduce errors at some chance when I attempted to log off.
>
>
> Does anyone have any experience with that?
Any experience with emulated hardware issues, and with actual hardware
having issues? Sure. This case is basically buggy hardware.
Experience with SCSI issues? Absolutely. Lots.
With this particular emulator and this issue? No.
Check with the emulator maintainer. axpbox hasn't been getting all
that much traffic around here as yet, and I don't know that the
maintainer follows this usenet newsgroup or receives feedback from
postings here.
Or have a look at the emulator itself. At the emulator source code.
Solely from what you've posted and not having reviewed the source code,
this looks like a fairly reasonable setup within the emulator code.
SCSI 0x1b is start-stop and load-unload. Prolly a stop request, here.
An unload is possible and certainly easy to test, but OpenVMS doesn't
unload devices at shutdown, nor at logout. Start-stop and load-unload
are not really particularly relevant commands for an emulator, so it
can likely be ignored save for updating some internal device state
settings within the emulator. Pull down the emulator source code and
have a look at the Disk.cpp and Sym53C810.cpp source code, and at
whatever code parses the SCSI command packets and generates the SCSI
command responses.
Based on what the OpenVMS shutdown does and on what logout does and
what the emulator is reporting, I'd suspect this is a disk spindown
request.
SCSI is a command-response protocol, so OpenVMS drivers and some
user-written apps send SCSI commands at the SCSI controller or the SCSI
device, and the device then parses and processes the command request
and generates what the device considers an appropriate response. Part
of the "fun" of SCSI is the flexibility and variability of the
possible responses and of the timing of same. SCSI's gotten easier to
deal with in the last decade or two, but it's still possible to bump
into incompatibilities and unimplemented commands and unexpected
responses. SCSI weirdness was far more common in past years, and
OpenVMS SCSI processing itself has gotten better. V6.2 and V7.1 saw
substantial improvements, there.
In this case, the emulator doesn't recognize the SCSI command, and
crashes. SCSI hardware and particularly SCSI firmware does that
sometimes, too—crashes, lock-ups, hangs.
FWIW, USB is basically SCSI with random bus disconnects, and ATAPI is
basically SCSI operating atop IDE.
I'd probably add command packet dump to that crash code; a way to dump
the full SCSI command packet to the user. Longer-term, I'd usually just
write the above crash info and the command buffer to a logfile
somewhere or to a crash report that can be available to the maintainer,
and generate some benign description to the user; an I/O feature not
implemented by this version of the emulator, in this case. With where
to look for more data and/or how to report this error and/or seeking
permission to upload the related telemetry.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list