- El análisis de los reportes de fallos de Firefox mostró que los errores de hardware causados por bit flips representan una parte significativa del total de fallos
- En la última semana, de unos 470 mil reportes de fallos, 25 mil fueron detectados como casos con posible bit flip
- Se confirmó que, más que bugs de software, los defectos de hardware pueden explicar hasta un 10~15% de los fallos
- La herramienta de prueba de memoria que se ejecuta después de un fallo revisa como máximo 1 GiB en menos de 3 segundos, pero aun así detecta muchos defectos reales
- Este problema afecta a todos los dispositivos, como PC, smartphones, routers e impresoras, y deja en evidencia los límites de confiabilidad del hardware de consumo
Fallos de Firefox y detección de bit flips
- Se diseñó un método para detectar el fenómeno de bit-flip en los reportes de fallos de Firefox, y luego se desplegó una herramienta de prueba de memoria que se ejecuta automáticamente tras un fallo en dispositivos de usuarios reales
- Esta herramienta se ejecuta en el dispositivo del usuario justo después de que el navegador falla para revisar errores de memoria
- El análisis de los datos recopilados confirmó que la heurística de detección de bit flips es válida y que muchos fallos ocurren en memoria defectuosa o hardware inestable
Resultados estadísticos
- Durante la última semana se recibieron cerca de 470 mil reportes de fallos, que solo incluyen una parte del total de fallos (bajo un esquema de opt-in)
- De ellos, unos 25 mil casos (aprox. 5%) fueron detectados como fallos con posible bit flip
- La proporción real es una estimación conservadora, y podría ser más del doble en la práctica
- Del total de fallos de Firefox, hasta un 10% se debe a defectos de hardware y, si se excluyen los fallos por agotamiento de recursos como falta de memoria, la cifra llega a alrededor del 15%
- La cifra puede estar algo sesgada porque los usuarios con hardware defectuoso tienden a experimentar fallos con mayor frecuencia
Resultados de las pruebas de memoria
- La herramienta de prueba de memoria ejecutada después del fallo revisa hasta 1 GiB de memoria en menos de 3 segundos, pero detecta muchos defectos reales de hardware
- En uno de cada dos fallos estimados como bit flip se confirmó un defecto real
- Aunque la prueba tiene un alcance limitado, muestra que la tasa real de errores es alta
Impacto en todo el hardware
- Este problema afecta a todos los dispositivos electrónicos, no solo computadoras y smartphones, sino también routers e impresoras
- También se reportaron muchos fallos en dispositivos como MacBook con ARM, donde la RAM está soldada dentro del paquete del CPU
- Reemplazar la RAM de esos equipos es imposible sin equipo especializado y técnicos con experiencia
Debate en la comunidad e información adicional
- Algunos usuarios compartieron casos de RAM defectuosa y experiencias con pruebas de memtest86, señalando la falta de control de calidad por parte de los fabricantes
- Continuó la discusión sobre la necesidad de usar RAM con ECC, y se planteó que incluso SECDED ECC podría extender considerablemente la vida útil de los dispositivos de consumo
- Se mencionó que existen estudios sobre errores de memoria en entornos de servidor, pero que es difícil compararlos directamente con dispositivos de consumo porque las condiciones son distintas
- El análisis de datos confirmó una fuerte correlación entre el envejecimiento del dispositivo y la tasa de errores de memoria
- Los bit flips pueden causar no solo fallos temporales, sino también pérdida permanente de datos, como corrupción del sistema de archivos, por lo que se destacó la importancia de los sistemas de archivos basados en checksums
Conclusión
- Queda claro que una proporción significativa de los fallos de Firefox proviene de problemas de hardware y no de defectos de software
- Se subraya la necesidad de detectar errores de memoria e incorporar ECC en dispositivos de consumo
- Es un caso que muestra que asegurar la confiabilidad del hardware está directamente relacionado con mejorar la estabilidad del software
1 comentarios
Opiniones en Hacker News
Ya lo había comentado antes en HN, pero Mike O’Brien (el creador de battle.net), que fue colega mío en la época de ArenaNet, creó hacia 2004 un sistema de detección de bit flips para Guild Wars
En cada frame (aprox. 60 FPS), asignaba memoria aleatoria, ejecutaba operaciones matemáticas y comparaba el resultado con una tabla de valores de referencia; alrededor de 1 de cada 1000 equipos fallaba
La causa solía ser CPUs con overclock, estados de espera de memoria mal configurados, falta de energía, mala refrigeración, etc., y como el juego renderizaba mucho terreno exterior, las computadoras tendían a sobrecalentarse
Más adelante se descubrió que también podían influir problemas de calidad en componentes baratos de Dell o incluso ataques RowHammer
Yo escribí código para que, si la prueba fallaba, se abriera el navegador y mostrara una página diciendo “limpia los ventiladores de tu computadora”
En esos casos, casi siempre pensé que se debían a bit flips aleatorios o hardware defectuoso
Es un poco más cara, pero resuelve casi todos estos problemas. Algunas motherboards de consumo ya soportan ECC
A mis padres les gustaba porque no tenía suscripción mensual, y el sistema de builds de 8 habilidades era realmente genial
Si sale una tercera entrega, ojalá dé más libertad para expresar builds
Durante pruebas de overclock, ECC permitió detectar errores sutiles, y desde entonces nunca más volví a confiar en overclock sin ECC
DDR5 en particular es difícil de estabilizar y sensible al calor, así que veo imposible hacer overclock sin ECC
La memoria ECC debió haberse vuelto estándar desde que se superó 1 GB
Hoy en día me molesta que la memoria con LED RGB inútiles sea barata y la ECC sea cara
AMD al menos da “soporte parcial” a ECC en CPUs de consumo, pero Intel solo lo permite en la gama workstation
Pero no está claro que sea más confiable que DDR4 sin ECC
Si fuera posible, me gustaría usar una laptop con ECC
Pero en entornos de servidor, con energía y temperatura estables, previene el 99% de los errores
El equipo de Go introdujo un sistema de reportes de crashes basado en telemetría
Con
runtime.SetCrashOutputrecopilaron stacks de crashes de goroutines y lograron detectar cientos de bugsPero algunos reportes eran imposibles de explicar, como si hubiera corrupción de memoria o mal funcionamiento del CPU
Como la mayoría de los usuarios de laptop usan memoria sin ECC, concluyeron que probablemente se trataba de fallas de hardware
Yo también quiero compartir este caso de bit flips del blog de JuliaLang
La afirmación de que “el 10% de los crashes de Firefox se deben a fallas de hardware” suena demasiado atrevida
En navegadores basados en Chromium no parece haber crashes con tanta frecuencia
Quizá Chrome es más estable porque maneja mejor el otro 90% de los bugs de software
De hecho, también podría significar que la mayoría de los crashes de Firefox son problemas de software
Vi un texto que decía “estamos seguros de que la causa son bit flips”, pero faltó explicar cómo lo detectaron
El memory_test.rs del código fuente de Mozilla parece cumplir esa función
Compré una PC nueva y al hacer overclock de la RAM a 5800 MHz, Fedora empezó a colgarse raro y las apps no abrían
Corrí memtest y en dos minutos empezaron a salir errores en rojo por todos lados; bajé la velocidad a 5200 y quedó estable
Qué sincronía tan precisa encontrar un post así justo en la portada de HN
Me sorprende que la tasa de crashes de Firefox sea más alta de lo que pensaba
Llevo años teniendo crashes al cerrar, y siempre envío el reporte cada vez
Todas mis extensiones son WebExtension, pero las causas que aparecen son variadas
Firefox maneja bien múltiples ventanas y pestañas, pero todavía necesita mejorar en estabilidad
Como durante el cierre se libera mucha memoria, es más fácil que un bit flip salga a la luz
Para comprobar la causa, convendría hacer una prueba de memoria
about:crashesMe alegra ver que alguien realmente está recopilando este tipo de datos
Creo que el problema de la memoria defectuosa es uno de los temas más subestimados en computación
Estaría bien tener un resumen corto en formato de nota técnica