Cómo reportar fallos
Debido a que nuestros desarrolladores no pueden verificar todas las combinaciones de hardware, ni todas las posibles maneras de interactuar con el sistema operativo, estamos contando con que los usuarios nos den retroalimentación sobre cómo funcionan las cosas de su lado. Dado que Haiku todavía es muy joven, es probable que vaya a encontrar fallos. Le agradecemos por tomarse el tiempo para reportar estos fallos. Juntos podemos mejorar a Haiku, poco a poco.
Para mantener nuestro rastreador de fallos efectivo, es esencial supeditarse a la Etiqueta del rastreador de fallos.
Obtener una cuenta de Trac
Para llenar un reporte, necesita tener una cuenta en el Rastreador de fallos de Haiku.
Cuando se cree una cuenta nueva, asegurese de proporcionar su correo electrónico pues es necesario obtener privilegios de modificación básica del reporte. Asegúrese de comprobar su carpeta de correo no deseado (spam) brevemente después, ya que a menudo toda verificación de correo importante termina allí.
Creación de un reporte de fallo
Antes de reportar un fallo, por favor asegúrese que aún no exista un reporte. Puede también usar la función de búsqueda para esto.
Tras haber establecido que es un fallo nuevo, haga que su información sea lo más precisa posible:
Intente reproducir su problema en la revisión actual de Haiku. Hay imagenes pre-construidas para fines de prueba disponibles en línea.
Incluya información básica tal como dónde está probando a Haiku (sobre hardware real, en VMWare, en QEMU, etc.).
Mencione cuál revisión está ejecutando. Puede encontrar esta información en
del menú del Deskbar. También mencione cual versión de Haiku está poniendo a prueba (x86_gcc2, x86_64). Las imagenes descargables se encuentran nombradas acorde, y en caso de una imagen auto-construida deberá saber cómo la construyó.Describa el problema que esté experimentando. Intente ser tan preciso como pueda: describa el comportamiento actual, y el comportamiento esperado.
Describa qué pasos necesita realizar para exponer el fallo. Esto ayudará a los desarrolladores a reproducir el fallo.
Adjunte tanta información como tenga. Si es un fallo de interfaz de usuario, o un fallo en una de las aplicaciones, intente hacer una captura de pantalla presionando la tecla Impr pant.
Fallos de programas
Cuando una aplicación deja de responder, puede guardar un informe o archivo de volcado de memoria (core file), ambos guardados en el Escritorio, y puede adjuntar estos archivos a un informe de fallos, o puede invocar el Depurador.
Si no se trata de un error que haga fallar a la aplicación, es posible obtener información útil si se la inicia desde la terminal. Algunas aplicaciones cuentan con registros de eventos y otras opciones al inicio mediante ciertos parámetros; intente utilizar como parámetros -h or --help para ver si ese es el caso. Como ejemplo, inténtelo con HaikuDepot para ver los diferentes niveles de registro.
Fallos de servidor
Cuando dejan de responder servidores vitales como el app server, el registrar o el input server, no verá la alerta de cuelgue normal. En lugar de ella, la pantalla completa se pondrá en blanco y el Depurador será iniciado en modalidad de sólo texto, y su información de salida aparecerá directamente en la pantalla. Probablemente pueda seguir moviendo el ratón, que sobreescribirá el blanco y la salida del Depurador en pantalla. Aplicaciones que se sigan ejecutando, como ProcessController o el reloj en la Barra de Escritorio, también podrían dibujar encima de la salida de depurador en la pantalla.
Más allá que todo se muestre de manera más desagradable e incómoda, basicamente lo mismo aplica para fallos en aplicaciones. Es muy importante que procure obtener un rastreo de pila (back trace) con la orden bt. Puede que sea necesario que tome una foto de la pantalla con una cámara digital, ya que no podrá copiar el texto en ningún lado.
Dependiendo de que fue lo que dejó de responder, puede intentar guardar un informe de cuelgue en el Escritorio con la orden save-report o write-core para un archivo de volcado, y luego presionar el botón de encendido una vez para intentar apagar el sistema de forma limpia. Si no funciona el botón de encendido, también están las ordenes shutdown (apagar) y reboot (reiniciar).
Fallos de núcleo (kernel)
Los fallos de núcleo a menudo son los de efectos más severos mientras que a la vez son los más dificiles de depurar. Hay diferentes tipos de síntomas, que muy probablemente apuntan a un problema de controlador o de núcleo:
El sistema entra al KDL (Zona de depuración de Núcleo) por sí sólo. La parte superior de la pantalla se despeja en blanco y varias líneas se muestran en ella. La segunda línea dice "Bienvenido a la Zona de Depuración del Núclo..." (Welcome to Kernel Debugging Land...), y la que está arriba declara la razón por la que se ingresó al KDL.
El sistema se reinicia de forma espontánea
El sistema deja de responder por completo. No puede mover el ratón y ninguna aplicación dibuja nada ya. Una prueba importante en esta situación es, si acaso todavía puede ingresar al KDL a través de la combinación de teclas ALT PetSis(SysReq) D siendo PetSis( Impr Pant en la mayoría de los teclados). Espere al menos un minuto para ver si sucede algo.
El sistema no arranca correctamente. Puede reiniciarse espontaneamente o dejar de funcionar en algún punto (por ejemplo, en algún ícono de la pantalla de arranque). En el segundo caso también intente ALT PetSis(SysReq) D.
El sistema completo o alguna pieza de hardware no se comportan correctamente. Por ejemplo, puede estar muy lento, ocurren errores, o algo no funciona en absoluto. Si algún hardware no funciona para nada, la primera verificación obvia es revisar si Haiku lo soporta actualmente (por ejemplo, preguntar en una lista de correos o en un foro).
Tome nota que aún cuando parece que sólo el último inciso parece indicar que es algo relacionado con hardware, todos los otros síntomas podrían ser provocados por una falla en un controlador de hardware también. Si tiene la sospecha que una pieza de hardware o su controlador correspondiente pueda que tenga que ver con el problema, revise si retirando/desactivando el hardware o el controlador hacen alguna diferencia. Por ejemplo, si sospecha sobre el Wifi podría encontrar que su BIOS tenga una opción para desactivarlo. O si no, podría añadir el controlador de Wifi responsable a la lista negra de su instalación de Haiku (vea Cargador de arranque).
Zona de depuración del núcleo - KDL
Si el sistema no ha entrado al KDL por sí sólo, puede ingresar deliberadamente invocando la combinación de teclas ALT SysReq D (siendo SysReq (PetSis) el mismo botón que Impr pant en la mayoría de los teclados).
Tome nota que en el KDL su teclado podría dejar de funcionar. Los teclados PS/2 siempre lo hacen, con los teclados USB depende del tipo de controlador (UHCI/EHCI). Generalmente, el teclado debería estar conectado al puerto directamente, no a través de un hub. En algunas circunstancias, el teclado sólo funciona si uno ha ingresado al KDL por el método abreviado de teclado al menos una vez anteriormente. Actualmente no se soporta USB OHCI.
El KDL mismo es un tipo de intérprete de comandos. Uno puede ejecutar ordenes que despliegan información sobre el sistema. Los siguientes comandos pueden ser de interés:
bt (también conocido como sc) | muestra el "backtrace", o rastreo de pila. Si el sistema entró en el KDL por si solo, un rastreo de pila normalmente se muestra de forma automática. Ingrese la orden si eso no sucedió así o parte de ella está cubierta (por ejemplo, si el rastreo de pila es tan largo que dio la vuelta), y su única forma de proveer la información a los desarrolladores es tomando una foto de la pantalla. | |
ints | mostrará el uso de interruptores manejados y no manejados de hardware. | |
co (lo mismo que continue) | saldrá del depurador del kernel y continuará la operación del sistema, si es posible. | |
reboot | Reinicia el sistema inmediatamente. Perderá toda la información no guardada y tal vez alguna que haya guardado, pero que todavía no se ha escrito en el disco. |
Para más información, vea el artículo Bienvenido a la Zona de Depuración del Kernel (en inglés).
La salida de KDL se escribe al puerto serial (si tiene uno, el cable respectivo, y un segundo ordenador para conectarlo, puede capturar la salida allá via un programa de terminal) y al registro del sistema (syslog). Pero si no puede salir del KDL, no será escrito en el archivo de registro de sistema. Hay una opción de depuración del cargador de arranque que permite capturarlo, no obstante (vea abajo).
Es posible generar códigos QR desde la salida de KDL que luego pueden ser convertidos a texo usando teléfonos inteligentes o aparatos similares. Vea la entrada del blog Codifique su salida KDL en QR (en inglés) sobre cómo extraer datos del KDL usando esa característica.
Registro de Eventos de Sistema
Este es el método predilecto para extraer información de un sistema que no arranca.
El Registro de Eventos de Sistema (o syslog, por su nombre corto en inglés) contiene información valiosa sobre lo que ha sucedido con su sistema, incluyendo la salida de las sesiones KDL. Normalmente es buena idea adjuntarlo al ticket de Trac relacionado con el núcleo. El syslog es escrito al archivo /boot/system/var/log/syslog. Debido a que escribir a un archivo requiere un sistema funcional, la salida más reciente puede no haber logrado llegar al syslog cuando ocurre un problema en el núcleo (particularmente en reinicios espontáneos o sesiones KDL incontinuables).
La opción /boot/system/var/log/previous_syslog.
Si no puede arrancar para obtener el archivo previous_syslog, tendrá que ingresar al menú del cargador de arranque manteniendo presionada la tecla MAYÚS (o ESPACIO si arranca en un sistema UEFI) mientras arranca.
En el menú del cargador de arranque, podrá encontrar las entradas (Display syslog from previous session) y (Save syslog from previous session). La primera muestra el registro del sistema en pantalla, mientras que la segunda le permite guardarlo como un archivo en el disco duro. Téngase en cuenta que actualmente solamente se permite guardar el archivo en volúmenes FAT32. Si quiere hacerlo en una unidad USB pero la conectó demasiado tarde, por lo que no ha sido detectada, puede reiniciar la máquina y volver a entrar en el menú del cargador de arranque. Atención: no arranque ningún sistema operativo accidentalmente o los datos se perderán.
Salida de depuración en pantalla
La salida de depuración en pantalla es útil solamente para depurar problemas muy específicos y tiene problemas (de sincronización). No la use si no tiene necesidad de hacerlo.
Esta sólo es relevante cuando Haiku no arranca en su máquina y la opción de (Debug syslog) no funciona por alguna razón. Antes que aparezca el logo de arranque de Haiku, mantenga presionada la tecla MAYÚS (o ESPACIO al arrancar en un sistema UEFI) para entrar en el menú del cargador de arranque. Seleccione (Select safe mode options). Cerca de la parte inferior, aparecerá en la lista (Enable on screen debug output). (Nota: Se pueden activar las otras opciones para tratar que Haiku arranque. Si Haiku sólo arranca cuando una o más opciones están activadas, asegúrese de mencionar cuales son).
Para terminar, seleccione (Return to main menu) y luego (Continue booting).
Se mostrará en pantalla una o más páginas de texto, aunque sólo es necesario incluir las últimas líneas que aparezcan al abrir su ticket. Por más información, consulte la documentación sobre el Cargador de arranque.
Fallos de hardware/controladores
Cuando se enfrente a fallos relacionados con hardware/controladores, debería adjuntar la siguiente información como archivos de texto:
- listdev | un listado detallado de su hardware, incluyendo las IDs de fabricante y dispositivo PCI, similar a los comandos de Linux lshw y lspci. | |
- listusb -v | asumiendo que el conflicto se relacione con USB, esto es similar a lsusb. | |
- open /var/log/syslog | vea Registro de sistema arriba, parecido al depurador en pantalla cuando se arranca. Con la orden open puede acortar a la parte relevante del registro de sistema en un editor de texto. | |
- listimage | grep drivers/ | muestra una lista de todos los controladores utilizados. | |
- usb_hid_report | En caso de dispositivos de entrada USB, agregue el archivo /tmp/usb_hid_report_descriptor_*.bin. | |
- ints | sólo disponible en la Zona de depuración del núcleo (kernel) (vea abajo). Muestra el uso de interruptores. No deberían haber muchos que esten compartidos por diferentes dispositivos. | |
- Salida de depuración en pantalla (una opción de depuración durante el arranque, véase arriba). |
Las primeras cuatro ordenes se pueden ingresar en la Terminal. Agregue un > output.txt tras una orden, y será canalizada a un archivo de texto llamado "output.txt" que puede adjuntar al reporte de fallos o correo electrónico.
¿Qué sigue?
Luego que se ha reportado un fallo, un desarrollador verá el reporte e intentará clasificarlo. Recuerde, todos somos voluntarios, y por ello, algunas veces un fallo pudiera estar sin responderse por un tiempo. El agregar nueva información cuando esté disponible normalmente ayuda a que se seleccione un fallo más rápidamente, pero no intente 'empujar' el fallo arriba en la lista agregando comentarios no descriptivos.
Recuerde, reportar un fallo no es algo en lo que tome un poquito de tiempo y sea todo. Si se reporta un fallo, se vuelve parte del proceso de desarrollo de Haiku. Los desarrolladores podrían llegar con preguntas mientras intentan arreglar el fallo reportado. Por favor, permanezca atento para responderlas. Considere su participación 'terminada' cuando el fallo se marque como 'arreglado'.