Han pasado dos décadas del año 2000 y el famoso efecto homónimo, también conocido como el error del milenio. Un problema informático causado por la omisión de la centuria en los años para el almacenamiento de fechas que, pese al peligro real que representaba, no resultó tan virulento ni devastador. No pasamos del 1 de enero del 2000 por al 1 de enero del 1900.
Si la presagiada apocalipsis se evitó fue gracias a la inversión en actualizaciones que se llevó a cabo en todo el mundo y en toda clase de equipamiento informático. La única solución que requerirá el bug que amenaza con ser, potencialmente y según algunos expertos, más catastrófico: el efecto 2038. Un problema que tiene fecha, pero también hora, minuto y segundo exactos.
¿Qué es el efecto 2038?
El problema del año 2038, efecto 2038 o también Y2K38 está basado fundamentalmente en la representación del tiempo basada en el sistema POSIX y las limitaciones de los sistemas de 32 bits. Una combinación explosiva que puede saltar por los aires el 19 de enero de 2038 a las 03:14:07 UTC.
Un segundo después de ese día y esa hora, los sistemas de 32 bits no serán capaces de contar más tiempo. Ese 19 de enero les parecerá el 13 de diciembre de 1901 si no se actualizan los sistemas como sucedió antes del 2000.
La razón de este fenómeno la encontramos en la capacidad máxima de bits de estos sistemas presentes en equipos de una cierta antigüedad todavía presentes en la sociedad, instituciones públicas y empresas. Funcionan, resumidamente, ejecutando sus procesos mediante 32 dígitos binarios, números uno o cero, con un total de 4.294.967.296 posibles combinaciones.
Estas combinaciones son positivas o negativas, siendo 2.147.483.647 los valores positivos superiores a cero, incluyendo el propio cero, y 2.147.483.648 los valores negativos. Esta limitación, sumada al hecho de que la representación del tiempo basada en el sistema POSIX funciona contando el número de segundos transcurridos desde el 1 de enero de 1970 a la medianoche UTC, supone que un ordenador de 32 bits solo es capaz de llegar a contar hasta ese 19 de enero del 2038 a las 03:14:07 UTC.
Un segundo después de ese momento, los equipos de 32 bits teóricamente pasarán a ese 13 de diciembre de 1901, exactamente 2.147.483.648 segundos antes del 1 de enero de 1970, fecha de referencia para el conteo.
Los efectos empiezan a notarse
Pese a que probablemente llegaremos a la fecha, la superaremos y en el mundo apenas habrá pasado nada —no porque las preocupaciones no fuesen reales, sino porque muchos habrán hecho su trabajo actualizando adecuadamente los sistemas—, los efectos parece ser que empiezan a notarse. Ya en 2020.
Esta verdadera historia de terror para cualquier programador la cuenta John Feminella, ingeniero de software que en su cuenta de Twitter ha contado mediante un hilo el problema al que se enfrentó uno de sus clientes, responsable de varios de los cien fondos de pensiones más importantes del mundo, y él mismo. Una historia que hemos conocido a través de mixx.io y que no es la única al respecto del efecto 2038.
Y el problema, naturalmente, son las fechas y los cálculos a futuro. El cliente de Feminella, explica, ejecutaba un trabajo nocturno consistente en calcular las contribuciones requeridas para los planes de pensiones a partir de proyecciones hechas a partir de 20 años vista. Sin embargo, un día dejó de funcionar: el 19 de enero de 2018. Justo dos décadas antes del año 2038.
Nadie supo que pasaba al principio, la persona que habría escrito el código responsable de las operaciones llevaba muerta alrededor de 15 años y las primeras posibles soluciones implementadas solo hacían que agravar un problema que puso patas arriba la compañía. El asunto se resolvió, una vez encontrado el problema, haciendo un hotpatch del script. Más allá del daño hecho al no poderse hacer las contribuciones requeridas aquel día, ponerse al día tuvo un coste de unos 1,7 millones de dólares.
"La moraleja de la historia es que el efecto 2038 no "viene". Ya está aquí. Arregla tus cosas", recomienda Feminella. Y no puede tener más razón.
Ver 18 comentarios