Friday, November 30, 2007

The space rocket is exploding after FP hardware overflow

Example 1. Ariane 5, 1996

Ariane 5's first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software, which was arguably one of the most expensive computer bugs in history. A data conversion from 64-bit floating point to 16-bit signed integer value had caused a processor trap (operand error). The floating point number had a value too large to be represented by a 16-bit signed integer. Efficiency considerations had led to the disabling of the software handler (in Ada code) for this trap, although other conversions of comparable variables in the code remained protected.

The software triggered a system diagnostic that dumped its debug data into an area of memory being used by the programs guiding the rocket's motors. At the same time, control was switched to a backup computer that unfortunately relied on that very same data. The rocket veered off course and exploded.

BADHARDWARE explosive comment: Nice , but somewhat expensive fireworks in my humble opinion. Obligatory YouTube firework video is here.

Example 2. Power Shutdown of the USS Yorktown

A crew member of the guided-missile cruiser USS Yorktown mistakenly entered a zero for a data value, which resulted in a division by zero. The error cascaded and eventually shut down the ship's propulsion system. The ship was dead in the water for several hours because a program didn't check for valid input (Reported in Scientific American, November 1998).


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?