El desarrollador de Red Hat Linux, Richard WM Jones, ha compartido una historia sorprendente sobre la búsqueda de errores de Linux. Jones notó que Linux 6.4 tiene un error, lo que significa que se bloqueará en el arranque aproximadamente 1 de cada 1000 veces. Jones se dispuso a identificar el error y demostrar que lo había atrapado con las manos en la masa. Sin embargo, su trabajo principal, que involucró arrancar Linux 292,612 veces (y otras 1,000 veces para confirmar el error), aparentemente «solo tomó 21 horas». También parece que el error es menos común con el hardware Intel que con las máquinas basadas en AMD.
Jones captó por primera vez este escurridizo pero replicable error de arranque de Linux cuando algunas pruebas de software de servidor con nbdkit (un protocolo para acceder a dispositivos de bloque a través de una red) parecían «colgarse aleatoriamente» cuando se usaban con libguestsfs (una herramienta para acceder y modificar máquinas virtuales). imágenes de disco.) Aunque sabemos que la fase de prueba de bucle duró apenas 21 horas (a pesar de que se iniciaron unos astronómicos 293.612 procesos de arranque), Jones dice que llegar a este punto «tomó muchos días». El desarrollador de Linux cuenta que una bisección dolorosa entre Linux v6.0 y v6.4-rc6 lo ayudó a identificar al culpable del bloqueo del arranque. Se afirma que el culpable es una regresión en la función de tiempo de impresión. Revertir esta confirmación de código «soluciona el problema», afirma Jones.
Una pista de la causa fue que el error siempre aparecía en la misma etapa inicial del proceso de arranque, al arrancar el último qemu. Si sigue este enlace, verá que la forma más fácil de replicar el problema de bloqueo es ejecutar un comando guestfish en un bucle, con muchas instancias en paralelo, analizando la salida para detectar cuándo hubo un evento de bloqueo de arranque. Por lo general, ejecutó el ciclo guestfish 10 000 veces, como un umbral viable para recopilar datos de registro útiles.
Quizás de interés para los fanáticos del hardware, Jones comenta que este extraño problema de bloqueo del arranque ocurre con menos frecuencia en los sistemas Intel que en los sistemas AMD. Cualquiera que sea el caso, es de esperar que la exposición y la identificación de este error signifique que será aplastado, para nunca volver.