[comp.lang.c] == vs =, and The Venus Probe

chris@mimsy.UUCP (Chris Torek) (01/12/88)

From comp.risks (RISKS Digest 5.73):
------------------------------

Date: Sun, 13 Dec 87 05:30:10 PST
From: hoptoad.UUCP!gnu@cgl.ucsf.edu (John Gilmore)
To: RISKS@KL.SRI.COM
Subject: Finally, a primary source on Mariner 1

My friend Ted Flinn at NASA (flinn@toad.com) dug up this reference
to the Mariner 1 disaster, in a NASA publication SP-480, "Far Travelers --
The Exploring Machines", by Oran W. Nicks, NASA, 1985.  "For sale by the
Superintendent of Documents, US Government Printing Office, Wash DC."
Nicks was Director of Lunar and Planetary Programs for NASA at the time.
The first chapter, entitled "For Want of a Hyphen", explains:

"We had witnessed the first launch from Cape Canaveral of a spacecraft
that was directed toward another planet.  The target was Venus, and the
spacecraft blown up by a range safety officer was Mariner 1, fated to
ride aboard an Atlas/Agena that wobbled astray, potentially endangering
shipping lanes and human lives."

..."A short time later there was a briefing for reporters; all that
could be said -- all that was definitely known -- was that the launch
vehicle had strayed from its course for an unknown reason and had been
blown up by a range safety officer doing his prescribed duty."

"Engineers who analyzed the telemetry records soon discovered that two
separate faults had interacted fatally to do in our friend that
disheartening night.  The guidance antenna on the Atlas performed
poorly, below specifications.  When the signal received by the rocket
became weak and noisy, the rocket lost its lock on the ground guidance
signal that supplied steering commands.  The possibility had been
foreseen; in the event that radio guidance was lost the internal
guidance computer was supposed to reject the spurious signals from the
faulty antenna and proceed on its stored program, which would probably
have resulted in a successful launch.  However, at this point a second
fault took effect.  Somehow a hyphen had been dropped from the guidance
program loaded aboard the computer, allowing the flawed signals to
command the rocket to veer left and nose down.  The hyphen had been
missing on previous successful flights of the Atlas, but that portion of
the equation had not been needed since there was no radio guidance
failure.  Suffice it to say, the first U.S. attempt at interplanetary
flight failed for want of a hyphen."

------------------------------

Date: Tue, 8 Dec 87 11:42:36 EST
From: mink%cfa@harvard.harvard.edu (Doug Mink)
To: risks@csl.sri.com
Subject: Mariner 1 from NASA reports

JPL's Mariner Venus Final Project Report (NASA SP-59, 1965)
gives a chronology of the final minutes of Mariner 1 on page 87:

4:21.23	Liftoff
4:25	Unscheduled yaw-lift maneuver
	"...steering commands were being supplied, but faulty application
	of the guidance equations was taking the vehicle far off course."
4:26:16	Vehicle destroyed by range safety officer 6 seconds before
	separation of Atlas and Agena would have made this impossible.

In this report, there is no detail of exactly what went wrong, but "faulty
application of the guidance equations" definitely points to computer error.
"Astronautical and Aeronautical Events of 1962," is a report of NASA to the
House Committee on Science and Astronautics made on June 12, 1963.  It
contains a chronological list of all events related to NASA's areas of
interest.  On page 131, in the entry for July 27, 1962, it states:

	NASA-JPL-USAF Mariner R-1 Post-Flight Review Board determined that
	the omission of a hyphen in coded computer instructions transmitted
	incorrect guidance signals to Mariner spacecraft boosted by two-stage
	Atlas-Agena from Cape Canaveral on July 21.  Omission of hyphen in
	data editing caused computer to swing automatically into a series of
	unnecessary course correction signals which threw spacecraft off
	course so that it had to be destroyed.

So it was a hyphen, after all.  The review board report was followed by a
Congressional hearing on July 31, 1962 (ibid., p.133):

	In testimony befre House Science and Astronautics Committee, Richard
	B. Morrison, NASA's Launch Vehicles Director, testified that an error
	in computer equations for Venus probe launch of Mariner R-1 space-
	craft on July 21 led to its destruction when it veered off course.

Note that an internal review was called AND reached a conclusion SIX DAYS
after the mission was terminated.  I haven't had time to look up Morrison's
testimony in the Congressional Record, but I would expect more detail
there.  The speed with which an interagency group could be put together
to solve the problem so a second launch could be made before the 45-day
window expired and the lack of speed with which more recent problems
(not just the Challenger, but the Titan, Atlas, and Ariane problems
of 1986 says something about 1) how risks were accepted in the 60's,
2) growth in complexity of space-bound hardware and software, and/or
3) growth of the bureaucracy, each member of which is trying to avoid
taking the blame.  It may be that the person who made the keypunch
error (the hyphen for minus theory sounds reasonable) was fired, but
the summary reports I found indicated that the spacecraft loss was
accepted as part of the cost of space exploration.

Doug Mink, Harvard-Smithsonian Center for Astrophysics, Cambridge, MA
Internet:  mink@cfa.harvard.edu
UUCP:	   {ihnp4|seismo}!harvard!cfa!mink

------------------------------

Date: 11 Dec 87 16:54:00 EST
From: "Marty Moore" <mooremj@aim.rutgers.edu>
Subject: Mariner I
To: "risks" <risks@csl.sri.com>

I've just caught up on two months of back RISKS issues.  I have the
following to contribute on Mariner I, based on my time at the Cape:

1.  Mariner I was before my time, but I was told the story by a mathematician
who had been at the Cape since 1960.  According to him, an algorithm, written
as mathematical formulae, involved a Boolean entity R.  At the point of
failure, the mathematician had written NOT-R, that is, "R" with a bar above
the character; however, the programmer implementing the algorithm overlooked
the bar, and so used R when he should have used NOT-R.  This explanation could
subesequently have been interpreted as "missing hyphen", "missing NOT", or
"data entry problem", all of which we've seen in recent contributions. 

2.  I think the FORTRAN version of the story is very unlikely.  Remember that
the error occurred in a critical on-board computer.  I consider it extremely
unlikely that such a computer would have been programmed in FORTRAN in 1962,
considering that the first use I saw of FORTRAN in a ground-based critical
system at the Cape was not until 1978!  (Of course, I wasn't aware of *every*
computer in use, so there may have been an earlier use of FORTRAN, but I'd be
surprised if it was more than a few years earlier.)  It is possible that the
originator of the FORTRAN version of the story may have been aware of another
error caused by the period/comma substitution, and also aware of the Mariner
problem as a "single character" error, and incorrectly associated the two. 

-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris