News: 1607328910

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

A 1970s magic trick: Take a card, any card, out of the deck and watch the IBM System/370 plunge into a death spiral

(2020/12/07)


Who, Me? Take a step back half a century with a cautionary tale of mainframes, student enthusiasm, and a shrinking deck of cards. Welcome to [1]Who, Me?

This week's confession comes from "Jeremy", who was studying Computer Science at a major US university in the mid-1970s.

In those halcyon days before computers where as ubiquitous as they are today, doing Computer Science homework could be a bit of a challenge.

Not so for Register reader Jeremy. He'd scored a job at the Business School's computer lab, which had its own Remote Job Entry (RJE) node for the campus IBM System/370. Not only could he do his homework while earning a crust, he could also bump up the priority of his job from the RJE console if the queue was looking lengthy.

For every disastrous rebrand, there is an IT person trying to steer away from the precipice [2]READ MORE

For the uninitiated, the [3]IBM System/370 range was first announced in 1970 and endured for a decade before being replaced by a succession of compatible hardware during the 1980s ahead of the arrival of the System/390 of the 1990s.

Back in the 1970s, however, Jeremy was learning the art of IBM 370 assembly language programming.

"One challenging project," he explained, "involved scanning an input dataset looking for a specific set of conditions, and then forking a new process when the conditions were fulfilled."

Unsurprisingly, the program didn't work first time and, lacking the modern fripperies of today's coders, Jeremy had to work through the problem in a distressingly manual fashion. "I began to troubleshoot by removing statements one by one from the card deck (it was the '70s) and resubmitting the job to the main data center."

He reckoned he was closing in on the bug when the mainframe fell over.

"This happened every few weeks," he said, "so I just hung out by the RJE console until it came back up.

"The terminal chattered to life and then, 30 seconds later, died again."

Jeremy called up the operators to ask what the problem was. Homework needed to be done. The answer was that nobody knew, but people were trying to get to the bottom of it.

He tried to run his program a few more times, but was met with an equal lack of success. Shift finished, he headed back to the dorm, "figuring I'd continue working on my program in the morning."

The morning did not bring with it further debugging. Instead, Jeremy was marched to his boss's office and instructed to remain standing in order to take a Force 9 [4]bollocking .

"The data center's director had called," he remembered, "and wanted my head mounted on a pike, my corpse fired, and what did I have to say for myself?"

The mainframe team had spent long hours picking through the remains of IBM's hardware and deduced that someone had injected a super-efficient bit of assembly that ran a do-while-forever loop. So many jobs had been forked that the mainframe's queue had filled up and the System/370 collapsed into a gibbering heap.

The act of removing all those cards from the deck had inadvertently created a monster.

It took copious grovelling and the showing of the pulled cards before Jeremy's boss would believe that the mistake had not been deliberate sabotage. Then he had to repeat the act of contrition once more under the gimlet gaze of the angry data center director.

"I did manage to keep my job. That time, at least," he said.

"Ah to be young and foolish again, instead of just foolish."

Ever whittled down your code until all that remained were the comments? Or enraged a data center director with an ill-considered set of commands? Confess all to the understanding vultures of [5]Who, Me? ®

Get our [6]Tech Resources



[1] https://www.theregister.com/Tag/who-me

[2] https://www.theregister.com/2020/11/30/who_me/

[3] https://www.ibm.com/ibm/history/exhibits/mainframe/mainframe_FS370.html

[4] https://dictionary.cambridge.org/dictionary/english/bollocking

[5] mailto:whome@theregister.com

[6] https://whitepapers.theregister.com/

Christoph

Petty! :-) The classic unintentionally runaway program was the Morris Worm.

ralphh

'With Microscope and Tweezers' is still a great read.

Broken NFS

Anonymous Coward

There was one friend of mine who, while at uni, discovered the NFS client library for C. While playing with this, he managed to create a directory called '/' inside his home directory.

He was slightly surprised when, shortly after, the computer collapsed in confusion as this was supposedly not possible (this predates being able to use backstroke-escape and fun things like that - a stroke was the directory separator only)

Apparently the systems manager had to fix the filesystem with a byte editor, once he had been told the likely cause of the borkage.

I may be misremembering - it was 30 years ago - but said friend is now rather successful in his IT field so lets not mention his name here

Re: Broken NFS

Randolf McKinley

Huh, yeah, I've got vague memories of fixing illegal Unix filenames with a byte editor too, but I can't remember what, or the context. It was something to do with creating a file from a program with characters in the name that made it inaccessible from the shell or another program (like '/' would be). You edited the current directory "." or the inode or something and replaced the illegal character in the name.

Re: Broken NFS

Denarius

Unix 1980s illegal filenames. The memories, the first computer, the fear, the terror. Had a boss who hated computers and me more so for liking them.

AT&T Unix, Intel 286 CPU, damaged backup tape causing hell on restore. Spaces in names, control chars in names etc. I was shown the use of metachars for first time by a local unix contractor. Saved bacon and learned something.

Re: Broken NFS

GlenP

Although it didn't completely break things it was possible for programs to insert spaces into DOS filenames that weren't permitted from the command line so you couldn't subsequently rename or delete them. Similar thing, had to use Norton to manually edit the directory files*.

*Details again may be hazy after 35 years or so!

Re: Broken NFS

Sceptic Tank

There was a command line wildcard trick to sort those names out, like REN SPA?CE.TXT SPAACE.TXT . Something to that extent.

Assembly language

Anonymous South African Coward

Ahh, the good old days when doing a bit of assembler, and causing the compiled program to lock the computer up solid if you made a mistake somewhere...

Or having to do a full reinstall when your shiny bits 'n bytes managed to mangle the FAT up good and properly (when trying to create a Norton Commander/PCTools clone with ASM)...

Nowadays developers have it easy with virtual machines and the such...

I can remember I created an assembly-language program which'll lock the PC up solid. Ran it in a DOS window under OS/2 - no problem there, just kill the offending DOS window and you're all good to go. :)

Re: Assembly language

Sceptic Tank

I started idle-time development on a directory management tool back in the day. Tested the delete functionality on my source code directory. It worked. Shifted my attention to a new project after that.

Re: Assembly language

cookieMonster

“when trying to create a Norton Commander/PCTools clone with ASM”

Yep, been there and done that, a lot :-/

Good times though.

Tight loop

Admiral Grace Hopper

A colleague had written a piece of S3 (an ICL language) of terrifying efficiency and was having trouble debugging it. In went a couple of debug messages which didn't appear, until he noticed he'd sent them to a spool buffer rather than the screen. Once he could could see them it was soon fixed.

The next day a porter arrived with a trolley containing 68 boxes of fan-fold piano-ruled paper, all printed with his debug information. We constructed an armchair out of the paper.

Unoriginal Handle

Early 80s. University somewhere. Either under Ultrix on the old PDP/11 or the shiny new Vax 8600, likewise with Ultrix. But no per-user process limits...

Me, in my tinkering, had a shell script ( probably Bourne but who cares, and it doesn't matter ) which forked another background shell or copy of itself, slept for 5 seconds, then repeated.

When other users sat at terminals in the room with all the consoles started expressing confusion as to why they couldn't do anything I went off and sought the advice of one of the post-grad system admins. Who had to resort to rebooting the whole kit and caboodle to resolve the problem, and /I don't know how much of other peoples' work I lost.

Sorry, all...

Paul Cooper

Back in the dark and distant days on the 1980s, I did have one or two programs that either would or woudln't work if a comment was in a particular location! I think that would have been in IBM's H Fortran Compiler, which was often rather too clever in its optimizations - my favourite was it movind a RAND function outside a loop because the argument didn't change within the loop!

AlanSh

Dubug by removing lines of code???? I do hope he's not doing anything serious now.

"Marriage is low down, but you spend the rest of your life paying for it."
-- Baskins