
Ariane-5: The (Probably) Most Famous Bug of All Times
It was considered “the worst bug ever”.
Not sure if this is still true after the Boing-737 failures, but without doubt, it is still in the top three.
A single line of code, suspicious from the first moment (a nasty casting), crashed a flagship rocket, only 37 seconds after liftoff.
A legacy code, used in the Ariane-4 system with success, made its way to the next generation.
This code (written in Ada), converted the horizontal velocity of the rocket from Float64 to Int16.
It worked perfectly in Ariane-4 — just because the values were low enough to fit in the 16bit representation.
When the conversion took place on the newer, stronger Ariane-5, the velocity value exceeded that number, and raised the overflow flag. Since no exception handling routine was installed, and no error-check was done — the system just crashed. And the backup system, too.
This bug dramatically changed the SW engineering industry.
When we talk about software today, we should know that its importance is now at the very end of the spectrum of different technologies used.
