You are here

Kernel Panic - not syncing: CPU Context corrupt

Esta semana el Pentium 3 ha empezado a fallar, aleatoriamente lanzaba Kernel Panics y finalmente no llegaba a arrancar cuando me mostraba por pantalla este "bonito" mensaje:

CPU 0: Machine clock exception: 0000000000000004
Bank1: b200200000000115
Kernel Panic - Not Syncing: CPU context corrupt

Cuando ya casí no sabía que hacer, ni por donde empezar, antes de decidirme a llamar a Linus Tolvards para ver si me podía ilustrar un poco acerca de como solucionar este tema, me encontre con la solución de trickster.

Esto se debe como podemos leer en el mensaje de error a una Machine Check Exception, también llamado MCE, se trata de un error de hardware que ocurre cuando la CPU detecta un error de hardware no recuperable.

En Windows esto se traduce en la tan famosa pantalla azul de la muerte con un mensaje similar a este:

STOP: 0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151) "MACHINE_CHECK_EXCEPTION"

En GNU/Linux, se muestra en la consola el error ya descrito.

El error se debe normalmente a un fallo por sobrecargar componentes hardware cuando el error no puede ser identificado más específicamente con un mensaje de error diferente. Tal y como dice la Wikipedia diagnosticar el mensaje de error puede ser difícil (puedo corroborarlo), aunque los procesadores Intel Pentium generan códigos más específicos que se pueden decodificar contactando con el fabricante.

Los MCEs requieren reiniciar el sistema, y generalmente indican un problema a largo plazo de naturaleza general.

Vale, todo esto está muy bien pero si quiero diagnosticar el problema lo mejor sería que pudiera arrancar el PC y trabajar con el para intentar identificarlo. Que hago?

En GNU/Linux tenemos la opción de pasarle un parámetro al kernel llamado nomce, la cuál como su nombre indica deshabilita MCE. Atención esto no solucionará nuestro problema pero podremos arrancar nuestro PC y ver si suceden cosas raras, monitorizar temperatura y vigilar el sobrecalentamiento de la CPU, hay que ir con cuidado porque muy probablemente estamos trabajando con hardware forzado y podemos corromper datos.

Esta es la definición del argumento nomce que hay en el Boot-Prompt Howto:

3.4.26. The `nomce' Argument

Some newer processors have the ability to self-monitor and detect
inconsistencies that should not regularly happen. If an inconsistency
is detected, a Machine Check Exception will take place and the system
will be halted (rather than plundering forward and corrupting your
data). You can use this argument to disable this feature, but be sure
to check that your CPU is not overheating or otherwise faulty first.

Si estamos usando grub y conseguimos arrancar nuestro PC podemos añadirle el parámetro al final de la línea del kernel editando el fichero /boot/grub/menu.lst

Si por el contrario no podemos llegar a completar el arranque podemos editar la linea directamente desde grub pulsando 'e' modificando la línea, pulsamos intro y le damos a 'b' para arrancar.

Importante: cuando tengamos el problema solucionado lo más recomendable sería volver a activar MCE quitando el parámetro nomce que habíamos introducido.

GNU/Linux: 
Offtopic: 
Qué te parece: 

Comments

Me ha parecido muy interesante, pero en caso de que comprobemos que no es un problema de calentamiento, ¿crees que se puede hacer algo que no sea reemplazar el procesador?

Esto principalmente nos permitirá investigar. Si no vemos problemas de temperatura, el siguiente paso aconsejable es contactar con el fabricante, en este caso Intel para ver si nos pueden dar el motivo por el cual se bloquea el PC en base al indescifrable código de error.

Luego sería interesante mirar si hay algo que tenemos instalado que esta sobrecargando la CPU, segmentation faults, errores en cadena, ...

Si no estamos nosotros forzando el hardware, ni tenemos ningún overclocking, y el sistema funciona normalmente al activar el nomce lo mejor que podemos hacer es una copia de la información que tenemos en esta máquina ya que hay bastantes puntos de que el problema sea irremediable e irnos despidiendo de la CPU.

Aún así podemos continuar usándola durante un tiempo, con el nomce hasta que la CPU diga basta, aunque no es aconsejable tener información crítica en esa máquina y a poder ser hacer backups regularmente de ella.

¡Gracias por tu respuesta!

Sin embargo, yo no esperaría mucho de lo que Intel me pudiera decir, así que me centraría en estudiar lo del calentamiento... Y si no es eso... ¡me temo que el destino del procesador es la basura Frown

Ya contaré que tal me fué con los señores de Intel, mucho me temo que como tu dices el destino final del procesador va a ser la basura.

Creo que ya no dan soporte para Pentium 3 así que lo más probable es que me ignoren.

La temperatura está alrededor de los 75 grados centígrados e incluso sobrepasa los 80 en algunas ocasiones.

No sé si la ubicación de la máquina es la ideal, pero de las tres es la que más se calienta. También he visto que los Intel se calientan mucho más que el AMD.

Desde luego que es imposible que trabaje bien con esa temperatura, cambia el ventilador y la pasta térmica o por lo menos métele un buen soplido a toda la caja, es imposible que te funcione bien con esa temperatura, de hecho está próxima a la temperatura de "fusión" del núcleo Laughing

A ver esta tarde/noche si tengo un ratito voy a probar si consigo bajar un poco la temperatura.

Por lo menos todos estamos de acuerdo en que el problema viene por la CPU/tostadora.

Saludos y gracias.

A mi también me ha parecido muy interesante el artículo. Espero que logres solucionar el problema, pero los 75-80 ºC de temperatura me parecen muy excesivos.

Tal vez deberías intentar mejorar el flujo de aire a ver si baja la temperatura o revisar si el disipador está bien colocado o se ha podido mover un poco.

Saludos, Iván.

Voy aprobar de cambiar la ubicación del PC. A ver si puedo abrirlo y le echo un vistazo al disipador.

A mí también me pareció que los 75-80 grados eran demasiado.

Esperemos que todo el problema venga por ahí.

Saludos.

Hola, comprueba que los condensadores de la placa base (los que estan cercanos a la CPU) esten bien y no tengan fugas, esto lo puedes comprobar a simple vista, viendo si la parte de encima de dichos condensadores, tienen como una espuma amarilla/marrón reseca. El problema podria ser la placa en vez de la CPU.

Ya contarás.