On 06/23/2020 09:09 PM, jim stephens via cctalk wrote:
Short story of crashing the 360 MVT system. We had IBM
reels we reused which IBM used for patches called DTRs.
they had 50 or 100' max length tape. We had a guy muck up
a program to send a file off our system to the mainframe,
and he forgot to break up the file into records. So he
ended up with an entire tape with one big physical record.
what happened was our code didn't properly terminate, so
when the IBM job was run with the tape as input it read
the entire tape and got a tape error. then printed a spew
on the console. repeat 10 times.
Problem, tape drive and console was on the same channel.
With normal size records even up to 64k long the tape
didn't busy the channel up for very long.
The 1052 Selectric console on the 360's were not on a
channel, but driven via direct I/O directly from the CPU
microcode. (Yes, the console has a pseudo channel address
that made you THINK it was on a channel, but it actually
wasn't.)
I'm kind of surprised, as the tape controller had a record
length count, and should just terminate with an error if the
record was longer than the count specified. You HAD to do
that, as otherwise you could overrun the user's buffer and
write tape data onto system control blocks or even another
user's partition.
Exactly how the tape controller handled these insanely long
records, however, is another matter, and I can imagine the
controller might try to reach the end of the record before
turning around to backspace over it so it didn't run over to
another record. And, that could tie up the channel for a
minute or more.
Sharing devices, control units and channels on the 360 was
NOT a really well thought-out mechanism.
Searching a data set of several cylinders for a specific key
on a 2314 drive could bring the whole system to a halt for
many seconds.
Jon