Como he ido comentando en algún que otro artículo Java es mi lenguaje de trabajo habitual y, como entorno de desarrollo o IDE, utilizo habitualmente Eclipse (una vez que superas su pronunciada curva de aprendizaje terminas cogiéndole cariño y amortizas la “inversión” de tiempo cuando te permite desarrollar, utilizando el mismo IDE, en diferentes lenguajes de programación: C++, PHP, …)
La semana pasada perdí casi una mañana entera en el trabajo porque, aprovechando que me habían asignado un equipo nuevo, opte por cambiar el sistema operativo de Ubuntu a Archlinux con Gnome 3 (llevaba tiempo queriendo hacer el cambio y ésta era la ocasión)
Horrorizado comprobé que la herramienta de trabajo diario se cerraba automáticamente cada vez que pinchaba en alguna de las vistas o intentaba moverlas de sitio.
Buscando la causa
Por desgracia no encontraba información en los logs y, como única respuesta sólo aparecían ficheros hs_err_pidNNNNN.log en el directorio de usuario con el contenido de la pila que había sido volcada por la máquina virtual de java (jvm)
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x61b8eb42, pid=16809, tid=3076159168 # # JRE version: 6.0_25-b06 # Java VM: Java HotSpot(TM) Client VM (20.0-b11 mixed mode linux-x86 ) # Problematic frame: # C [libxul.so+0xc6cb42] NS_UTF16ToCString_P+0x195cb # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --------------- T H R E A D --------------- Current thread (0x09043c00): JavaThread "main" [_thread_in_native, id=16809, stack(0xbfc0f000,0xbfc5f000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000008
Posibles soluciones
En un principio sospeché que el problema pudiese estar en el uso, por parte de Archlinux, de la última versión de la máquina virtual de java (la 1.6.0_25) pero tras hacer un par de pruebas quedó descartado.
Mirando el volcado de la pila, a todas luces parece que la causa se encuentra en la librería libxul.so del sistema (librería de Mozilla encargada de dar soporte a los formularios XUL a Gecko) buscando alguna solución al problema en Internet (no iba a ser yo el primero con éste error, ¿no?) encuentro las siguientes posibilidades
- Activar el uso de UserWebKitGTK
- Cambiar el parámetro XULRunnerPath para que apunte al directorio en el que se encuentra xulrunner2.0
- Cambiar a la versión 3.x de firefox o de hacer un downgrade a xulrunner (para que funcione Gnome 3 es necesario utilizar la versión 2.0 de xulrunner)
Solución adoptada
Al final, y sin ser una solución definitiva mientras que no solucionen la dependencia de Eclipse con la versión anterior de libxul el remedio al problema pasa por eliminar la dependencia con el navegador web añadiendo, al final del fichero de configuración /usr/share/eclipse/eclipse.ini la siguiente línea
-Dorg.eclipse.swt.browser.XULRunnerPath=/dev/null
De este modo perdemos:
- la posibilidad de consultar la ayuda de Eclipse (no la usaba y si la necesito está colgada en Internet)
- la vista javadoc que tampoco uso habitualmente por lo que podré sobrevivir sin ella
Conclusión
Solución que me ha costado demasiadas horas encontrar y que he optado por compartir para que todos aquellos programadores que se encuentren el problema no tengan excusa para darle una oportunidad a Gnome-shell
Espero que pronto se actualice el proyecto Eclipse y podamos utilizarlo sin tener que recurrir a este parche.















Había leido en varios foros el error, no uso Eclipse (uso Geany) pero es una puta que una herramienta de trabajo “imprescible” de fallos como estos. Es el precio por tener las últimas actalizaciones, y más con actualizaciones tan grandes como ha sido la del gnomo
Eres un máquina …
Se hace lo que se puede pero no creo que llegue a tanto… gracias Monzi
saludos, interesante blog, te estare po ello leyendo, sigue aportando.
Seguiré aportando… señor, sí señor
Interesantísimo. La verdad, si no hubieras mencionado que lo usas para C++ y PHP te hubiese recomendado IntelliJ Idea… Lo he usado solo durante dos meses (comparado con 4 años de eclipse no es mucho), y me ha parecido alucinante.
Un saludo, y gracias por compartir este tipo de información.
Mi querido amigo Monzisez, esto es solo el comienzo del cambio que dará el informático de guardia en las próximas semanas. Con permiso al “INFORMATICO”, el equipo ha crecido, y el blog, cada vez más se esta expandiendo, y sólo hay una manera de ayudar a este máquina, uniéndonos todos para que esto se convierta en una gran comunidad.
Genio!!! Gracias por compartirlo!!
Gnome-shell da bastantes problemas, y no sólo me refiero a que cierre Eclipse nada más abrirlo. A mi me pasa con JDownloader, que también utiliza una máquina virtual Java. Si tengo JD abierto, no puedo abrir el “Monitor de sistema”; el PC se cuelga casi siempre si tengo abierto un rato el JD; y otras lindezas como esta.
Gnome-shell utiliza demasiados recursos, el portátil se calienta sobremanera cuando lleva unos minutos encendido (y no creo que seas sólo por el verano).
A pesar de estar con Archlinux, la impresión que me da es que Gnome-shell es bastante inestable aún, espero que ser resuelva con el tiempo. Con Arch intento hacer una actualización diaria, pero a veces eso hace que sea más inestable, ja, ja.
Saludos.
Al final me decidí a utilizarlo en el equipo del trabajo (en el que al fin y al cabo paso la inmensa mayoría del tiempo delante de una pantalla) y aunque no es tan estable como debería no he tenido tantos problemas como mencionas (¿no será un fallo de jDownloader?).
Lo único que observo es que las aplicaciones Java maximizadas no funcionan correctamente (sobre todo los menús).
De todos modos, para mi resulta un entorno divertido pues tiendo a disfrutar configurando, investigando y solucionando problemas (alma de masoca que tiene uno
)