Bichos extraños y las historias que hay detrás de ellos

Skurrile Bugs und die Geschichten dahinter

Si buscas en la World Wide Web bichos extraños, sorprendentes y divertidos, encontrarás muchas historias interesantes.
En este artículo, nos gustaría resumir algunos casos de bugs famosos, desde divertidos hasta altamente destructivos.
Por cierto, el descubrimiento y la solución suelen ser tan interesantes como el propio fallo.

El error del correo electrónico de 500 millas

Uno de los fallos más curiosos se descubrió en el sistema de correo electrónico de una universidad.
Un profesor observó que los correos electrónicos a destinatarios situados en un radio de 800 km se entregaban sin problemas, mientras que los correos electrónicos a destinatarios más lejanos nunca llegaban.

¿Cómo podía ser?
Tras mucho rascarme la cabeza y rebuscar en el código, resultó que el error residía en un parámetro de tiempo de espera que se basaba en un periodo de tiempo que permitía a las señales luminosas recorrer una determinada distancia.
Como los desarrolladores habían utilizado la velocidad de la luz en el cálculo, el resultado era un «horizonte» muy real, aunque no intencionado, de 500 millas para la comunicación por correo electrónico.
Tras ajustar el parámetro de tiempo de espera, se solucionó el error.

Por cierto, este fallo también es responsable del nombre de un boletín y blog que sólo trata de fallos absurdos de software.
El boletín, que merece la pena leer, se llama 500 Mile Email y fue fundado por Harley Hicks.

El Orbitador Climático de Marte

El Orbitador Climático de Marte fue una sonda de la NASA que se envió a Marte como parte del programa Discovery en 1999, pero que al final simplemente se quemó debido a un fallo de software tan famoso como sencillo.
Este infausto final de lo que en aquel momento era un sistema de alta tecnología se debió a una simple confusión de unidades: mientras que el equipo de navegación realizaba sus cálculos en unidades métricas, el software del orbitador utilizaba unidades de medida angloamericanas.
Por tanto, utilizaba unidades como libras (para el peso), pulgadas y pies (para la longitud) y galones (para el volumen), que diferían de las unidades métricas como kilogramos, metros y litros.
Esta discrepancia hizo que el orbitador volara mucho más cerca de Marte de lo previsto y acabara quemándose en la atmósfera marciana.

¿Qué podemos aprender de esto?
El incidente nos muestra la importancia de acordar normas y formas de comunicación comunes en el desarrollo de software y de adherirse a estas normas en todo momento.

El fallo del Pentium FDIV

Otro ejemplo muy famoso es el fallo FDIV de los procesadores Pentium de Intel a mediados de los noventa.
Este fallo en la operación de división en coma flotante hacía que el procesador devolviera resultados incorrectos en determinadas divisiones.
Aunque el fallo sólo se producía en condiciones muy concretas y la mayoría de los usuarios probablemente nunca lo habrían notado, la atención pública que recibió acabó llevando a Intel a lanzar una campaña de sustitución.
Este incidente demostró la importancia de la precisión en el desarrollo de hardware y la creciente concienciación del público sobre los detalles técnicos.

Por cierto, el error es tan conocido que existe un artículo propio en Wikipedia sobre él, que puedes leer aquí.

El efecto 2000

Uno de los fallos más famosos y potencialmente catastróficos de la historia de la tecnología fue el efecto 2000, también conocido como el problema del año 2000.
El fallo se debió a la práctica de codificar el año en los sistemas informáticos con sólo dos dígitos (por ejemplo, «99» para 1999) para ahorrar espacio en la memoria.
Esto provocó un temor generalizado a que, al pasar del año 1999 al 2000, los sistemas informáticos interpretaran el año «00» como 1900 en lugar de 2000, lo que podría provocar cálculos erróneos y fallos en todo tipo de sistemas, desde los bancarios hasta los de control de centrales eléctricas.

Se invirtieron miles de millones en todo el mundo para solucionar el problema actualizando el software y probando los sistemas para garantizar que podían gestionar correctamente el nuevo milenio.
Gracias a estos esfuerzos, los temidos efectos catastróficos no se materializaron en gran medida, y el efecto 2000 sirve ahora como advertencia sobre la importancia de la planificación anticipada en el desarrollo de software.

El fallo Heartbleed

Heartbleed fue un grave fallo de seguridad en la biblioteca de software OpenSSL que se descubrió en abril de 2014.
OpenSSL se utiliza ampliamente para implementar los protocolos SSL y TLS en las comunicaciones por Internet y proporciona cifrado a diversos servicios para proteger datos sensibles, como contraseñas e información personal.

El fallo permitía a los atacantes leer la memoria de los servidores web y acceder así a una gran cantidad de datos sensibles y confidenciales sin dejar rastro.
Lo preocupante en este caso no era sólo la facilidad de explotación, sino también el hecho de que el fallo permaneciera completamente desapercibido durante unos dos años.

Como resultado, Heartbleed provocó un aumento de la inversión en la seguridad del software de código abierto y una mejor comprensión de la importancia de la seguridad en el mundo digital.

Conclusión

Estas anécdotas demuestran que los errores en el desarrollo de software a veces pueden adoptar formas extrañas.
Esto debería recordarnos que, a pesar de todos los avances de la tecnología, sigue habiendo lugar para errores (provocados por el hombre), descuidos y malentendidos que pueden tener consecuencias de gran alcance.
Las historias de estos bugs no sólo son entretenidas, sino que también sirven como valiosas lecciones sobre la importancia de la diligencia debida y la revisión exhaustiva de los productos de trabajo antes de que se publiquen (es decir, sobre todo, las pruebas de software adecuadas).