Tiempo atrás vimos cómo un bug computacional (error de programación) hacía que algunos pacientes tratados por una de las primeras máquina de rayos para el tratamiento del cáncer (afortunadamente esto fue hace 30 años y ahora son muy seguras) reciban altas dosis de radiación con un resultado fatal.

Esta historia no tiene un final tan trágico, aunque muestra lo fácilmente que puede ser dejar fuera de circulación cualquier sistema por más caro y amenazador que parezca.

Esta es la historia del crucero con capacidad de disparar misiles llamado USS Yorktown (CG48), un “barco de guerra” como mejor lo conocemos y que fue uno de de los miles que tiene Estados Unidos en casi todos los mares del mundo.

El Yorktown no fue un crucero cualquiera, su vida fue marcada el día que se lo seleccionó como parte de un programa para convertir a todos los barcos en Naves inteligentes mediante la sistematización de gran parte de los procesos, con la intención de optimizar los recursos, tal cual como lo dicen los archivos, ahora ya desclasificados:

En diciembre de 1995, el proyecto Buque inteligente fue creado y el USS Yorktown fue elegido como el barco prototipo. El Programa de Envío inteligente tenía como objetivo reducir la dotación, manteniendo la disposición a través de instalaciones tecnológicas y los cambios de filosofía. Las tecnologías centrales instaladas en Yorktown fueron 16 estaciones de trabajo unidas a través de  fibra óptica configuradas en red de área local (LAN). El barco contaba con protocolos tales como Integrated Bridge System (IBS), Voyage Management System (VMS), Damage Control System(DCS), Integrated Conditioning and Assessment System (ICAS), HYDRA wireless communication system, y Standard Machinery Control System (SMCS).

El programa comenzó al año siguiente y los equipos aumentaron a 27 estaciones de trabajo con la última tecnología disponible (procesadores dual Pentium PRO de 200mhz) con Windows NT 4.0 como Sistema Operativo. El sistema central estaba basado también en tecnología Intel siendo el Pentium PRO el que equipaba el servidor y Windows NT Server como “alma». Las estimaciones en reducción de gastos preveían un ahorro de u$s 2,8 millones al año (un 10% del total) con este sistema, por lo que las esperanzas en el mismo eran muy grandes.

Todo parecía funcionar correctamente hasta el 21 de septiembre de 1997, fecha en la que, mientras el CG48 se encontraba ejecutando maniobras cerca de las cosas de Virginia (EEUU) un operador ingresó un 0 como dato, valor 0 que ocasionó que la nave quede completamente a la deriva y sin siquiera poder retornar a los controles manuales. Fue tal la falla que la nave tuvo que ser remolcada hasta la base naval más cercana.

Todavía se discute la veracidad sobre el remolque o si después de más de 2 horas los sistemas del barco pudieron volver a ser usables, de todas maneras lo que no da para discusión es la anécdota aunque con el tiempo se descubrió que el problema no fue culpa del hardware ni del OS sino que estuvo en la aplicación que controlaba la base de datos. De todas maneras es una historia totalmente creíble luego de haber conocido (y sufrido) los problemas de los Pentium con la división por cero, procesadores que si bien fueron anteriores, demuestran una época bastante “verde” respecto a bugs comunes y cosas “imposibles” que dejaban completamente inutilizable un sistema.

Igualmente se nota la presión del Lobby de M$ en la historia, tal como dice Ron Redman:

Debido a la política, nos vemos obligados a utilizar cosas que si no tuviésemos presión no usaríamos, como Windows NT. Si fuera por mí, probablemente no habría utilizado Windows NT en esta aplicación particular… La refinación del sistema es un proceso continuo y Unix es un sistema mejor para el control de equipos y maquinaria, mientras que NT es mejor mejor para la transferencia de información y datos. NT nunca ha sido totalmente refinado y hay veces en que hemos tenido paradas culpa de NT.

Dicen que en el ámbito militar, se conoce menos del 10% de los casos negativos. Seguramente habrá decenas, sino cententas de errores de este tipo. Ni hablar de las cataratas de neglicencias que terminan en historias muy tristes, pero eso, será para tocar en otro momento.

19 COMENTARIOS

  1. Imaginate lo que puede llegar a pasar cuando los autos se manejen solos

    Saludos

  2. nacho

    una vez lei que no recuerdo en que avion militar , por un bug, al cruzar el ecuador, el avion giraba automaticamente y te dejaba cabeza abajo!

  3. nikodeb

    Boludos los que hicieron la transformacion que no pusieron los 3 botones clasicos de windows (ctrl alt supr) en version gigante.

    Gracias a linus (dios) volkswagen usa para sus autos que se manejan solos una version de linux propia, por lo que se espera que estas boludeces no pasen.

    • Montano

      La dura verdad es que estas boludeces van a seguir pasando siempre. Uses linux, unix, windows, intel, AMD, FOXCONN, asus, etc etc. Todo sistema esta creado por humanos y los humanos se equivocan.

      La única ventaja de usar un sistema abierto sobre otro es que los problemas los podes solucionar uno mismo y no depende de terceros. Pero pasar eso la cagada ya tuvo que pasar

  4. Juan Pablo

    “Use lo mejor:

    Linux para Servidores.
    Mac para graficos.
    Palm para Mobilidad.
    Windows para Solitario. ”

  5. Nachesko

    Me imagino el llamado a la gente de windows desde algun telefono satelital xD.

    «Buenas tardes, soy el Tte Cnel al mando del CG48, en una ubicacion desconocida, hemos tenido problemas con su version de windows NT, y todos los sistemas han quedado deshabilitados, las armas estan es estado de alerta maxima y el barco amenaza con autodestruirse. Podria decirme los pasos necesarios para reiniciar el sistema y retomar el control ? Si, tengo service pack 2 instalado, no, no usamos NetFramework para el control de armas».

    xD

    • Emiliano

      ¡NOOOO! ¡No paro de reirme por Dios!

    • Guido

      Ya probó desenchufando y enchufando el barco?

  6. WhiteRabbit

    Muy linda la historia, Guille, te corrijo un detalle: ningún procesador divide por cero, porque la división por cero no está definida (no hay un opuesto a, por ejemplo, 0 x 10 = 0).

    El problema de los Pentium II era la precisión a partir de cierta cifra decimal en números con coma flotante.

    En esa época también había un problema bastante peculiar pero de parte del software: http://support.microsoft.com/kb/216641
    No encontré nada con respecto a la definición técnica del problema, pero en algún momento escuché que eso se debía a que no había un manejo correcto del contador que determina la edad de las páginas en memoria (entre otras cosas).

    Una explicación técnica acá:

    http://sites.google.com/site/edmarkovich2/whywindows95andwindows98wouldcrashafter49.7daysofuptime

  7. Interesante historia y como un simple error al ingresar un dato convirtio un barco de guerra en una maquina inutilisable.

    Esto podria traducirse a mayor escala con el pasar de los años, ya que todo esta controlado por computadoras.

  8. Aereon

    Agradece que les paso relativamente cerca de sus costas y no en pleno combate.

  9. Camilo

    Che sin animo de defender aquellas versiones de Windows… el problema estuvo en la base que no contemplaba el ingreso del 0, se fue todo al choto, pero el NT no tuvo nada que ver en ese caso.
    Por otro lado les cuento… en mi laburo nos exigen usar linux en la compu, pero con opcion de usar una maquina virtual con Windows para hacer las cosas que no se pueden desde linux… en consecuencia termino usando el Windows sobre el linux que anda a los ponchasos y lento, pero anda mejor que la porong* de red hat que nos obligan a instalar… Cuando se rompe prefiero reinstalar a intentar arreglarlo. Mac OS lo mismo… se te rompe y no lo arregla ni jebus. Windows se rompe buscas en google y generalmente tenes la solucion.
    Se las debo con una distro linux + un libreoffice laburando en serio cuando todo el mundo usa windows.

    Salú

  10. Adrian

    Se olvidaron de instalarle el Norton PC Anywhere. Así lo reparaban remoto.

  11. cristian

    Habia un problema en el EXCEL tambien con no se que redondeo decimal. Que daba bastantes problemas. Segun la leyenda COBOL no fallaba , pero exportabas al EXCEL y chau.

  12. cristian

    Apague el reactor nuclear 5 minutos.

Dejá una respuesta

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí