ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
256 stars 119 forks source link

Crash en Fedora 32 con librerías de 32bits instaladas #150

Open emilio opened 4 years ago

emilio commented 4 years ago

Cuando intento usar autofirma, recién instalado, en Fedora 32, no funciona. Mirando el journalctl veo:

``` Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.ProxyUtil clearJavaProxy Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: No se usara Proxy para las conexiones de red Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.SimpleAfirma main Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: No se buscaran nuevas versiones de la aplicacion Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.SimpleAfirma printSystemInfo Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: AutoFirma 1.6.5 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Resolucion DPI de pantalla: 0 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Sistema operativo: Linux Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Version del SO: 5.8.12-200.fc32.x86_64 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Version de Java: 1.8.0_265 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Arquitectura del JRE: 64 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Java Vendor: Red Hat, Inc Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Localizacion por defecto: en_US Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Tamano actual en memoria: 962MB Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Tamano maximo de memoria: 14277MB Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Memoria actualmente libre: 820MB Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.SimpleAfirma main Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: Invocacion por protocolo con URL: Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: [SNIP] Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: SLF4J: Defaulting to no-operation (NOP) logger implementation Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher launch Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: Se invoca a la aplicacion para realizar una operacion de firma/multifirma Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.core.misc.protocol.ProtocolInvocationUriParser parserUri Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: URI recibida: [SNIP] Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.core.misc.http.DataDownloader downloadData Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: El contenido a obtener es Base64 Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Oct 02, 2020 3:08:55 AM es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher launch Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: INFO: Se inicia la operacion de firma Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: OpenJDK 64-Bit Server VM warning: You have loaded library /usr/lib/libsqlite3.so.0.8.6 which might have disabled stack guard. The VM will try to fix the stack guard now. Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/libsqlite3.so.0.8.6: /usr/lib/libsqlite3.so.0.8.6: wrong ELF class: ELFCLASS32 (Possible cause: architecture wo> Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at java.lang.ClassLoader$NativeLibrary.load(Native Method) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at java.lang.Runtime.load0(Runtime.java:810) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at java.lang.System.load(System.java:1088) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix.getNSSLibDirUnix(MozillaKeyStoreUtilitiesUnix.java:75) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.getSystemNSSLibDir(MozillaKeyStoreUtilities.java:251) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:699) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:122) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:59) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:72) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:511) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:542) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:133) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.standalone.protocol.ProtocolInvocationLauncherSign.processSign(ProtocolInvocationLauncherSign.java:281) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher.launch(ProtocolInvocationLauncher.java:429) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.standalone.protocol.ProtocolInvocationLauncher.launch(ProtocolInvocationLauncher.java:80) Oct 02 03:08:55 localhost.localdomain gnome-shell[45364]: at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:616) ```
$ file /usr/lib/libsqlite3.so.0.8.6                                                                                                                                                                                                        
/usr/lib/libsqlite3.so.0.8.6: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]=d822d65d751179777e3af3717d6f19fb71188b5f, stripped
$ sudo dnf provides /usr/lib/libsqlite3.so.0.8.6                                                                                                                                                                                           
Last metadata expiration check: 3:39:15 ago on Thu 01 Oct 2020 11:39:33 PM CEST.
sqlite-libs-3.31.1-1.fc32.i686 : Shared library for the sqlite3 embeddable SQL database engine.
Repo        : fedora
Matched from:
Filename    : /usr/lib/libsqlite3.so.0.8.6

sqlite-libs-3.33.0-1.fc32.i686 : Shared library for the sqlite3 embeddable SQL database engine.
Repo        : @System
Matched from:
Filename    : /usr/lib/libsqlite3.so.0.8.6

sqlite-libs-3.33.0-1.fc32.i686 : Shared library for the sqlite3 embeddable SQL database engine.
Repo        : updates
Matched from:
Filename    : /usr/lib/libsqlite3.so.0.8.6

Tengo instalados los paquetes tanto de i686 como de x86-64.

Desinstalando las de 32-bits (i686) me encuentro con un error similar pero con /usr/lib/libnspr4.so.

Eventualmente desinstalando esas puedo abrir autofirma.

Parece que autofirma está buscando librerías en /usr/lib antes que en /usr/lib64, y debería de hacerlo al revés.

emilio commented 4 years ago

Lo cual es raro, porque esto:

https://github.com/ctt-gob-es/clienteafirma/blob/ae0767cec44bf0f0ee832dd2a9722e7d11f882e8/afirma-core/src/main/java/es/gob/afirma/core/misc/Platform.java#L225

Debería hacer lo correcto.

doublepepperoni commented 4 years ago

Hola Emilio,

¿ has mirado el error señalado aquí #27 ? El workaround proporcionado por tururut a mi me funcionó.

ln -s /usr/lib64 /opt/firefox-

Estoy en RHEL 7.8, con OpenJDK y AutoFirma 1.6.5.

emilio commented 4 years ago

Ah, gracias! Supongo que esto es un dupe de #27, y que por lo visto ya está arreglado en master (lo que explica que estuviera confuso sobre por qué no funcionaba ;))

Mi workaround fue desinstalar las librerías de 32 bits (que no necesitaba igualmente) pero supongo que eso podría funcionar también, aunque es muy hackish.

othyro commented 3 years ago

Tengo el mismo problema con OpenSUSE Tumbleweed:

% autofirma Aug 04, 2021 10:54:48 PM es.gob.afirma.standalone.ProxyUtil clearJavaProxy INFO: No se usara Proxy para las conexiones de red Aug 04, 2021 10:54:48 PM es.gob.afirma.standalone.SimpleAfirma main INFO: No se buscaran nuevas versiones de la aplicacion SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Aug 04, 2021 10:54:48 PM es.gob.afirma.standalone.SimpleAfirma printSystemInfo INFO: AutoFirma 1.6.5 Resolucion DPI de pantalla: 0 Sistema operativo: Linux Version del SO: 5.13.6-1-default Version de Java: 16.0.2 Arquitectura del JRE: 64 Java Vendor: Oracle Corporation Localizacion por defecto: en_GB Tamano actual en memoria: 186MB Tamano maximo de memoria: 2972MB Memoria actualmente libre: 142MB Aug 04, 2021 10:54:48 PM es.gob.afirma.standalone.SimpleAfirma main INFO: Apertura como herramienta de escritorio Aug 04, 2021 10:54:48 PM es.gob.afirma.standalone.SimpleAfirma main INFO: Se intenta una precarga temprana de NSS OpenJDK 64-Bit Server VM warning: You have loaded library /usr/lib/libsqlite3.so.0.8.6 which might have disabled stack guard. The VM will try to fix the stack guard now. It's highly recommended that you fix the library with 'execstack -c ', or link it with '-z noexecstack'. Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/libsqlite3.so.0.8.6: /usr/lib/libsqlite3.so.0.8.6: wrong ELF class: ELFCLASS32 (Possible cause: can't load IA 32 .so on a AMD 64 platform) at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227) at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169) at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2383) at java.base/java.lang.Runtime.load0(Runtime.java:746) at java.base/java.lang.System.load(System.java:1857) at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix.getNSSLibDirUnix(MozillaKeyStoreUtilitiesUnix.java:75) at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.getSystemNSSLibDir(MozillaKeyStoreUtilities.java:251) at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:699) at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:122) at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:59) at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:72) at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:511) at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:542) at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:133) at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:646)