Mundane Explosions

Last week I had the opportunity to speak about “Spectacular Spectacles” at MCAD.  I chose to look at software failure as an example of  spectacle.  Software often fails spectacularly, which corresponds well with the theme, but there is also an interesting argument to be made about how software fails.  Software failures are often a result of the most mundane of mistakes.

Photo credit: Unknown

One such spectacular failure is the explosion of the Ariane 5 Rocket.

The rocket was part of a family of  rockets intended to carry a payload into orbit.

The specific payload that the Ariane 5 was supposed to launch was a three-ton satellite.

A $7 billion joint venture of the European Space Agency (ESA) and the Centre national d’études spatiales (CNES), the rocket took ten years to complete.  It was intended to give Europe an edge in the competitive, private space industry.

On its maiden voyage, the unmanned rocket exploded just forty five seconds after lift-off from French Guiana.

The cause of the failure was a software error in the Inertial Reference System.  Worse, the failure is a frequent mistake made in coding:

When programming languages store data, they store it as a particular type of data.  Integers, alphanumeric strings, and  Boolean variables are examples of data types.

Numbers can be stored in a variety of ways, but in the specific case of the Ariane 5 there was an error in the way a particular number was being stored.   The inertial guidance system used an integer type to store the  horizontal velocity.  This had worked perfectly well in the previous Ariane 4 rockets.  But, the Ariane 5 was faster than its predecessors.  *The horizontal velocity exceeded 32,767 – the largest number that should be stored as an integer.  Instead, the value should have been stored as a floating point value.  But, floating point values are less efficient than integers, and since the system was not mission critical, the integer value was overlooked.

 

This caused an error in the Inertial Reference System.  That error message was then interpreted by the on board computer as flight data, at which point it altered its course.  A part of the rocket (the launcher) began to disintegrate because of the steep angle of flight, and that disintegration triggered the self destruct mechanism.

 

This isn’t an esoteric error in computing: typed variables and the limitations of each type of variable is a first year programming topic at any university.  This is certainly not a dig either, the software for this rocket was sophisticated code that had developed over the course of a decade.  Moreover, even if the error had been noticed, this is the metaphorical equivalent of your house falling down around you because you accidentally slammed a door.  But it is remarkable, that such a mundane mistake can have such spectacular consequences.

And this leads us to the point of this post: software fails; it fails frequently and for easily understandable reasons.  The inability to verify that software works as intended has been one of the foremost research topics in computer science since the mid 1960s.  While there has been significant progress, it is still a challenge for the field.

For the public, it should be becoming a greater concern as modern, western society becomes more and more dependent upon computers and the software that drives them.

 

*More information on data types

References:

Lions, J.L. et. al. (1996) ARIANE 5 Flight 501 Failure: Report by the Inquiry Board, Paris

Gleick (1996, Dec. 1) A Bug and a Crash, Sometimes a Bug is more than a Nuisance, New York Times

facebook comments:


2 Responses to Mundane Explosions

  1. It’s hard to find your page in google. I found it on 13 spot, you should build quality backlinks , it will help you to get more visitors.
    I know how to help you, just search in google –
    k2 seo tricks

  2. Is there a video of your presentation?

Leave a Reply

Your email address will not be published.