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

Reply via email to