Mozilla intenta mejorar Firefox para Linux, pero, ¿ha llegado a tiempo?
Mozilla ha detallado los esfuerzos que ha realizado durante el último año para mejorar la estabilidad de Firefox en Linux, exponiendo para ello los mecanismos que emplea para gestionar los informes de error y explicando los desafíos que ha presentado el sistema.
Lo primero que ha expuesto la fundación es el formulario que se muestra cada vez que se produce un fallo en Firefox, algo con lo que la mayoría de los usuarios probablemente se hayan topado alguna que otra vez. Desde MuyLinux recomendamos cumplimentar y enviar el formulario en caso de detectarse un error que empieza a ser recurrente mientras se usa la aplicación.
Aparte de los datos que se pueden adjuntar a voluntad, con el informe se envía un “minivolcado” que consiste en una pequeña instantánea del proceso en memoria en el momento en que se produjo el error. Obviamente, esos minivolcados consisten en una especie de versión reducida de los volcados de memoria tan comunes en los reportes de errores de software.
Mozilla utiliza Breakpad para extraer los datos de los minivolcados en Firefox para Linux, una herramienta creada originalmente por Google para Picassa y Google Earth y que Mozilla ha bifurcado y modificado para adaptarla a sus intereses. Otro detalle importante a tener en cuenta es que ha sido reescrita hace poco en Rust, ese lenguaje de programación que aspira a ser el futuro de la programación a bajo nivel.
Una vez se envía el informe de error, este llega al componente situado en el lado del servidor del mecanismo utilizado por Mozilla: Socorro. Básicamente, lo que hace Socorro es procesar los informes que le llegan y extraer “un rastro de la pila del minivolcado”, generando a partir de ahí información que sea fácilmente entendible por los humanos y asignando un error en caso de hallar un nuevo fallo.
Hasta aquí hemos abarcado lo que podría considerarse como la parte más “genérica” del asunto, pero frente a Windows y macOS, Linux presenta algunos desafíos adicionales debido a que la mayoría de los usuarios no usan las compilaciones de Firefox procedentes de Mozilla, sino las suministradas por las propias distribuciones. La fundación ha explicado que esa situación “planteó un problema importante al tratar con problemas de estabilidad en Linux: para la mayoría de nuestros informes de fallos no pudimos producir trazos de pila de alta calidad porque no teníamos la información de símbolos requerida.”
“Las compilaciones de Firefox (para Linux) que envían informes no las hicimos nosotros, y para empeorar las cosas, Firefox depende de varios paquetes de terceros (como GTK, Mesa, FFmpeg, SQLite, etc.). No obtendríamos buenos rastreos de pila si ocurriera un bloqueo en uno de esos paquetes en lugar del propio Firefox porque tampoco teníamos símbolos para ellos”. Aquí podríamos destacar la compilación de Firefox ofrecida por Fedora, la cual está modificada para funcionar de manera nativa y por defecto en Wayland.
Para abordar el problema que suponen las distintas compilaciones que hay para Linux y la gran cantidad de versiones de las mismas bibliotecas que llegan a utilizar, Mozilla empezó a extraer información de depuración para las compilaciones de distribuciones como Arch Linux, Debian, Fedora, openSUSE y Ubuntu, teniendo que escribir scripts específicos para cada distribución para revisar la lista de paquetes en los repositorios y encontrar la información de depuración asociada.
El resultado de esa colaboración más estrecha es que Mozilla es ahora capaz de analizar más del 99% de los informes de fallos que les llega, mientras que antes ese porcentaje no llegaba al 20. A este dato se suma el hecho de que los usuarios de Linux tienen de media más conocimientos de computación que los de macOS y Windows, lo que ha derivado en una contribución más activa tanto en la resolución de problemas como en la obtención de información de calidad.
El nuevo marco para tratar los fallos encontrados en Firefox para Linux también abarca componentes como VA-API y Wayland y permite ahora identificar errores y regresiones específicos de una distribución. Según Mozilla, la mayor calidad de la información ha permitido muchas veces solucionar los problemas en cuestión de días.
Especial mención tiene aquí Fedora, porque la distribución comunitaria de Red Hat ha tendido a usar ABRT (su propio sistema de reporte de errores) para recopilar los fallos de la compilación de Firefox que suministra. Después de que Mozilla decidiera establecer un marco más colaborativo, los responsables de Fedora tomaron la decisión de usar el mecanismo ofrecido por la fundación. Esto podría explicar, al menos en parte, el papel más activo que ha tenido Red Hat en el desarrollo de Firefox en los últimos tiempos.
La gran base de usuarios de Linux con los que cuenta Firefox también ha servido para mejorar la contribución en el canal Nightly, donde Mozilla emplea herramientas para detectar problemas sensibles de seguridad y luego enviar informes detallados de los fallos detectados. Gracias a la contribución de los usuarios de Linux se detectaron ciertas limitaciones en aquellas herramientas, por lo que Mozilla tomó la decisión de reescribirlas en Rust.
Mozilla ha comentado que sus esfuerzos para mejorar la estabilidad de Firefox para Linux ha generado “buenas sinergias entre proyectos FLOSS” y que dicha colaboración “no solo beneficia a los usuarios, sino que, en última instancia, mejora todo el ecosistema y la comunidad en general que depende de él”.
Por nuestra parte decimos que Mozilla ha movido una ficha en la dirección correcta, aunque ya podría haber hecho esto mucho antes para cuidar mejor el único bastión que le queda, porque está visto que los usuarios de Windows y macOS le han dado la espalda a Firefox hace mucho tiempo.