Errores de código desastrosos de la historia de la informática

El software es cada vez más complejo. De ahí que habitualmente surjan bugs o errores de código. Normalmente se descubren a tiempo y se solucionan. No siempre es así.

En un artículo anterior comenté que Windows 3.1 (1993) tenía entre 4 y 5 millones de líneas de código. Windows XP llegaba a los 45 millones de líneas.

Sirvan esos datos como ejemplo de lo difícil que es programar y encontrar errores en el código, y eso teniendo en cuenta que los programadores cuentan con herramientas semiautomáticas.

Los errores de código son inevitables. Por suerte, siempre hay alguien que los encuentra y, en muchos casos, comparte esa información con el fabricante del software para que cree un parche o actualización que repare dicho error.

Pero una cosa es un programa de ordenador que utilizan millones de personas y otra un software interno de una empresa o de un ente público. En esos casos, pocos tienen acceso a ese programa y es difícil encontrar bugs o errores de código a tiempo. En otros casos, al programar no se tienen en cuenta los posibles problemas que surgirán al cabo de muchos años.

Veamos algunas de las consecuencias desastrosas relacionadas con errores de código.

Y2K o el fin del mundo en 2000

Quienes vivimos el paso de 1999 al año 2000 recordamos la alarma que surgió en la prensa motivado por uno de los errores de código más curiosos.

El error Y2K o Y2K bug afectaba a computadoras creadas a principios de los 90. Para ahorrar memoria, escasa en estas primeras máquinas, los años se expresaban con dos dígitos, creyendo que no durarían más allá del siglo XX donde prácticamente todos los años empezaban por 19.

Como consecuencia, el 1 de enero de 2000, esas máquinas volvían al 1 de enero de 1980 (al menos en el caso de MS-DOS y Windows).

¿Qué consecuencias tuvo el error Y2K? No se desató el Apocalipsis, tal y como parecía según ciertas informaciones alarmistas. Pero sí ocurrieron cosas, que pudieron solventarse, como alarmas o alertas en plantas de energía, modelos de telefonía móvil antiguos que borraban los mensajes recibidos, máquinas tragaperras que dejaron de funcionar, transacciones bancarias que se rechazaron, etc.

Therac-25 y la radiación

Un error de programación del software del Therac-25, una máquina de radioterapia provocó serios accidentes entre 1985 y 1987.

En concreto, un número indeterminado de pacientes fueron irradiados con dosis excesivas de radiación, más de 100 veces la dosis recomendada, lo que causó daños graves e incluso la muerte de varios de ellos.

NORAD y la Tercera Guerra Mundial

NORAD es el acrónimo de North American Aerospace Defense Command o Mando Norteamericano de Defensa Aeroespacial.

Durante la Guerra Fría empleó supercomputadoras que, en algunos casos, reportaron falsas alarmas de ataques por parte de la URSS y que, de haberse tenido en cuenta, hubieran derivado en una más que probable Tercera Guerra Mundial.

En concreto, se tienen constancia de falsas alarmas en noviembre de 1979 y junio de 1980. La causa fue una batería de pruebas que reportaron falsos avisos que pudieron tomarse como ciertos de no haberse revisado.

Los no muertos del St. Mary’s Mercy Medical Center

El hospital o centro médico St. Mary’s Mercy de Grand Rapids, Michigan, actualizó su software de gestión de pacientes en 2003, lo que provocó que más de 85.000 pacientes aparecieran en su base de datos como fallecidos.

Por suerte, esa información era errónea, y es que al actualizar el software, éste no hizo una correcta conversión del código numérico correspondiente a pacientes dados de alta asignándoles el código que correspondía a pacientes fallecidos.

Este error no afectó a vidas humanas, pero sí fue un problema para las empresas aseguradoras, los pacientes que recibieron facturas y documentación indicando que habían fallecido y otros problemas burocráticos derivados de la digitalización del sistema sanitario norteamericano.

La caída de la red de AT&T

El 15 de enero de 1990, la mitad de la red de AT&T en Estados Unidos dejó de funcionar. Esto provocó que en nueve horas, 75 millones de llamadas no pudieran realizarse.

Si bien las primeras informaciones culparon del problema a un grupo de hackers, luego se vio que la causa era una actualización de software y un error en una línea de código de la actualización que se replicó por toda la red de AT&T.

Los desastrosos comienzos del Ariane 5

El cohete Ariane 5, fabricado por la Agencia Espacial Europea, tuvo unos inicios problemáticas, y es que en su vuelo inaugural, conocido como vuelo 501, explotó a los 40 segundos de despegar y a 3.700 metros de altitud.

En el cohete no viajaba nadie, se trataba de un vuelo de prueba no tripulado. Pero sí produjo pérdidas millonarias, ya que el propósito del cohete era situar en órbita futuros satélites de comunicaciones o para experimentación científica. Se estima que unos 500 millones de dólares en carga perdida y meses de desarrollo.

¿Qué causó la explosión? Como en los casos anteriores, errores de código. Literalmente, el problema surgió al convertir un número de coma flotante de 64 bits en entero de 16 bits. Básicamente, un error relacionado con valores decimales en las instrucciones del despegue. Curiosamente, ese código erróneo se había heredado del software de los cohetes Ariane 4, el modelo anterior.

RELACIONADOS