PLATTS@Wharton-10@sri-unix (11/23/82)
From: PLATTS at Wharton-10 (Steve Platt) This discussion reminds me much of my undergraduate days... A friend once used a dialup line (keep in mind, in those days, there were but a handful of dialups available to our IBM 360; most were selectrics; *two* lines were "high-speed" for the 300 baud ASCII TI 700 terminals... only sys programmers could afford the $2500 CRT's; everyone else was "batch") (ah, the good old days...)... in any case, this friend called up the computer and started a version of a RABBIT program: program WABBIT creates 4 new tasks, FLOPSY, MOPSY, COTONTAL, and PETER, each of which create 4 tasks... eventual job queue overflow... The system crashed in around 15 or 20 minutes, as expected. The next day, same friend's house caught fire. Or should that be entitled "revenge of the processor"? ..... The following tale is probably somewhat apocryphal. I tell it every semester to my students to point out the importance of checking array boundaries... It seems there was an early computer, possibly (or probably, considering this tale) made by DEC, whose operating system kept, amongst other things, a full month's calendar, complete with lunar computations: new moon, full moon, quarter moon, and so on. Unfortunately, there was a subtle bug in the algorithm for computing the lunar orbits on the 31-element array used to store the information: If the month was a full 31 days long and the full moon fell *exactly* on the last day of the month, the appropriate counter was placed both in the 31'st and 32'nd position of the array. Again unfortunately, the array was only 31 elements long, and this overwrote a system variable. As you can well expect, this did not bode well with the particular OpSys, and it would proceed to crash at some intermediate time afterwards. This is a particularly good example of a computer which would run depending on the phase of the moon, it seems... ----- Maybe an INFO-HISTORY list is in order, or perhaps INFO-TALL-TALES? -steve