The AFU and Urban Legend Archive
Science
mariner i




From: linden@positive.eng.sun.com (Peter van der Linden)
Newsgroups: alt.folklore.urban
Subject: Software explodes probe (not to Uranus)
Date: 31 Jan 1994 01:13:52 GMT

From: PAPAI@kcgl1.eng.ohio-state.edu (Jonathan Papai)
> ObUL: Mariner I was a failure due to one mistyped character.

Pud-boy is correct, but the statement is misleading, in that the program specification was wrong, and the programmer merely followed it. So the character wasn't mistyped, but mis-specified.

This story is wrongly reported in many programming language texts. An accurate account, based on original contemporary documents can be found in:

      "Expert C Programming", publ Prentice-Hall, April 1994,
       ISBN 0-13-177429-8, paperback, 384 pages, $32, buy two copies now).

Mariner 1 was launched in July 1962 to carry a probe to Venus, but had to be destroyed a few minutes after launch, when its Atlas rocket started to veer off course.

After weeks of analysis, it was determined that the problem *was* in the software, but it was a transcription error in the algorithm rather than a program bug. In other words the program had done what the programmer had supposed, but he had been told the wrong thing in the specification! The tracking algorithm was intended to operate on smoothed (average) velocity. The mathematical symbol for this is a horizontal bar placed over the quantity to be smoothed. In the hand-written guidance equations supplied to the programmer, the bar was accidentally omitted.

The programmer followed the algorithm he had been given exactly, and used the raw velocity direct from radar, instead of the smoothed velocity. As a result, the program saw minor fluctuations in rocket velocity, and in a classic negative feedback loop, caused genuine erratic behavior in its correction attempts. The faulty program had been present in previous missions, but this was the first time it had been executed. Previous flights had been controlled from the ground but on this occasion an antenna failed, preventing the receipt of radio instructions, and thus causing the on-board control software to be invoked.

Moral: even if you could make your programming language 100% reliable, you would still be prey to catastrophic bugs in the algorithm.

References:

"Expert C Programming", Prentice-Hall, 1994

     "Far Travelers -- The Exploring Machines",
     Oran W. Nicks, NASA publication SP-480, 1985.

     "Beyond the Limits -- Flight Enters the Computer Age",
     Paul Ceruzzi.

     New York Times, page 1, July 23 1962 and page 2, July 28, 1962.

--
Peter van der Linden linden@eng.sun.com What you heard was wrong; actually, nature *adores* a vacuum. That's why most of the universe consists of vacuum. And that's why we have vacuum cleaners -- to clean something nature is fond of.


Any proceeds (net proceeds from merchandise sales) from TAFKAC solely benefit The Chuck Reed Fund.

Copyright Information

http://tafkac.org/