El padre de Linux, el mismísimo Linus Torvalds, ha enviado el día de ayer desde la lista de correo del kernel de Linux,  advirtió al mundo que no hay que usar el kernel 5.12-rc1, y todos nos preguntamos el porque, no pasa nada serio pero lo vamos a comentar brevemente.

En palabras del sensey Linuxero

Hola gente, algunos de ustedes ya se habrán dado cuenta de que en mi árbol público de git, la etiqueta «v5.12-rc1» ha sido mágicamente renombrada a «v5.12-rc1-dontuse». Sigue siendo el mismo objeto, todavía dice «v5.12-rc1» internamente y todavía está firmado por mí, pero el nombre de la etiqueta visible para el usuario ha cambiado.

Resulta que cuando Linus Torvalds marca algún código como dontuse, realmente lo dice en serio: el problema con esta versión candidata a la versión 5.12 rompió el manejo de archivos de intercambio de una manera muy terrible. Específicamente, el código actualizado perdería el desplazamiento adecuado que apunta al comienzo del archivo de intercambio. Una vez más, en las propias palabras de Torvalds, «el intercambio todavía sucedió, pero sucedió en la parte incorrecta del sistema de archivos, con los resultados finales catastróficos obvios».

Básicamente esto significa que cuando el kernel paginó el contenido de la memoria en el disco, los datos aterrizarían en partes aleatorias del mismo disco y dividirían el archivo de intercambio en el que estaba no como archivos, claro, sino como basura, arrojado directamente a los sectores sin procesar en el disco. Esto significa sobrescribir no solo los datos de los archivos existentes, sino también grandes piezas de metadatos cuya corrupción probablemente haría que todo el sistema de archivos sea imposible de montar e inutilizable.

Torvalds continúa señalando que si no usamos swap en absoluto, este problema no lo afectaría. Y si está utilizando particiones de intercambio, en lugar de archivos de intercambio, no se verá afectado de manera similar. Desafortunadamente, luego nos recuerda que, si bien sabe muchísimo sobre el kernel, no necesariamente está tan familiarizado con toda la plomería que le preocupa a un usuario final normal:

Y, hasta donde yo sé, todas las distribuciones normales configuran las cosas con particiones de intercambio, no con archivos, porque honestamente, los archivos de intercambio tienden a ser más lentos y tienen otros problemas de complejidad.

Muchas distribuciones todavía cambian de forma predeterminada las particiones, en lugar de los archivos. Pero Ubuntu, que es quizás la distribución de Linux más implementada en el planeta, ha estado  instalando archivos de intercambio de forma predeterminada durante más de cuatro años. Si eres un usuario de Ubuntu (o un usuario de una distribución derivada de Ubuntu, como Mint), probablemente tengas un archivo de intercambio, y este error probablemente arruinaría todo tu sistema de archivos raíz.

Sin embargo, la advertencia de Torvalds importa más allá de lo que los usuarios individuales podrían hacer con un kernel candidato a lanzamiento. Es aún más importante que los desarrolladores del kernel no basen su propio trabajo en esa versión y potencialmente lleven un error muy grande en el futuro.

Quiero asegurarme de que nadie inicie nuevas ramas de temas con esa etiqueta 5.12-rc1. Sé que algunos desarrolladores tienden a decir «Ok, rc1 está fuera, tengo todo mi trabajo de desarrollo en esta ventana de combinación, ahora avanzaré a rc1 y lo usaré como base para la próxima versión». No lo hagas esta vez. Puede funcionar perfectamente bien para usted porque tiene la configuración de partición común, pero puede terminar siendo una base horrible para cualquier otra persona que pueda terminar dividiéndose en esa área.

Esto nos hace pensar en no ir a las últimas versiones a producción, al menos hasta que estén probadas o nos aseguremos que son estables. Los candidatos para la versión del kernel de Linux suelen ser, muy sólidos y es tentador sumergirse en las nuevas funciones lo antes posible, pero hacerlo puede tener consecuencias ingratas. Y muchas de esas consecuencias podrían haberse evitado esperando a que el código ingresara a producción tan rápido.

Deja un comentario