CIE ID + OpenJDK 11: crash tentando di abbinare nuova CIE

In passato ho abbinato senza problemi altre CIE, adesso CIE ID va in crash durante il tentativo di abbinare una nuova carta. Nel log l’unica parte che mi pare di una certa rilevanza è la seguente:

Internal exceptions (20 events):
Event: 0,224 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff2c76d8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, int, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000ff2c76d8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,224 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff2cb368}: 'java.lang.Object java.lang.invoke.DelegatingMethodHandle$Holder.reinvoke_L(java.lang.Object, int, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000ff2cb368) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,228 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff16acb0}: 'java.lang.Object java.lang.invoke.Invokers$Holder.linkToTargetMethod(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000ff16acb0) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,230 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff1d7a98}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeSpecial(java.lang.Object, java.lang.Object, int, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000ff1d7a98) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,230 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff1db478}: 'java.lang.Object java.lang.invoke.DelegatingMethodHandle$Holder.reinvoke_L(java.lang.Object, int, int, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000ff1db478) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,243 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fef4eaa8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x00000000fef4eaa8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,243 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fef5b020}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int)'> (0x00000000fef5b020) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,244 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fef67978}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int, java.lang.Object)'> (0x00000000fef67978) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,249 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000feffb3a8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int)'> (0x00000000feffb3a8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,250 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fee197d8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int)'> (0x00000000fee197d8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,250 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fee38260}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int, java.lang.Object)'> (0x00000000fee38260) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,251 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fee58350}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int, java.lang.Object, java.lang.Object)'> (0x00000000fee58350) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 0,262 Thread 0x00007fe0b4594800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fed04b90}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object)'> (0x00000000fed04b90) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,596 Thread 0x00007fe0340d7000 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fdada190}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeSpecialIFC(java.lang.Object, java.lang.Object, int)'> (0x00000000fdada190) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,600 Thread 0x00007fe0340d7000 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fd916a08}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object)'> (0x00000000fd916a08) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,600 Thread 0x00007fe0340d7000 Exception <a 'java/lang/IncompatibleClassChangeError'{0x00000000fd920310}: Found class java.lang.Object, but interface was expected> (0x00000000fd920310) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 839]
Event: 10,601 Thread 0x00007fe0340d7000 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fd923288}: 'void java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, java.lang.Object)'> (0x00000000fd923288) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,601 Thread 0x00007fe0340d7000 Exception <a 'java/lang/NoSuchMethodError'{0x00000000fd928b70}: 'int java.lang.invoke.DirectMethodHandle$Holder.invokeStaticInit(java.lang.Object, java.lang.Object)'> (0x00000000fd928b70) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,859 Thread 0x00007fe0340da800 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff3da9f8}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int, java.lang.Object)'> (0x00000000ff3da9f8) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]
Event: 10,859 Thread 0x00007fe0340d7000 Exception <a 'java/lang/NoSuchMethodError'{0x00000000ff209618}: 'java.lang.Object java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object, int, int, java.lang.Object, java.lang.Object)'> (0x00000000ff209618) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 772]

vm_info: OpenJDK 64-Bit Server VM (11.0.14+9-post-Debian-1) for linux-amd64 JRE (11.0.14+9-post-Debian-1), built on Jan 19 2022 10:05:38 by “unknown” with gcc 11.2.0

Come posso risolvere? Grazie!

P.S.: con OpenJDK 8 funziona correttamente

openjdk version “1.8.0_312”
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-1-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

Sul repository GitHub non ci sono specifiche in merito alla versione di Java supporta. Vista la natura dell’eccezione credo proprio che CIEID non sia compatibile con Java 11.

Potresti fare la prova compilare l’applicazione direttamente dai sorgenti con JDK 11.

Grazie @amusarra ma non sono uno sviluppatore Java e non ho idea di come si compili.

Nota che i pacchetti deb e rpm non hanno nessuna dipendenza verso nessuna versione di JRE: il problema si risolverebbe agevolmente impostando una dipendenza e avendo cura di invocare il binario java della versione da cui si dipende. Per assurdo, allo stato attuale qualcuno potrebbe addirittura installarlo senza avere nessun interprete Java sul suo sistema.

Hai perfettamente ragione. Purtroppo la qualità di questo progetto non è eccelsa. Prova a scrivere sul gruppo slack dedicato o aprire una issue.

Ciao.

Ho eseguito un test sulla mia installazione:

  • SO: Fedora 35 (kernel 5.16)
  • Java: OpenJDK 64-Bit Server VM Corretto-11.0.14.9.1 (build 11.0.14+9-LTS, mixed mode)
  • Middleware Linux versione 1.4.2-1 via rpm

Non ho riscontrato alcun problema (vedi screenshot).




La mia implementazione è quella di amazon e la versione è la stessa di quella installata sul tuo sistema.

Quale versione di middleware hai?
La funzione di abbinamento esegue delle chiamate native via JNI (Java Native Interface) verso il middleware CIE, in particoloare verso la liberia /usr/local/lib/libcie-pkcs11.so. Il tuo errore sembrerebbe legato a questa chiamata nativa.

L’applicazione Java esegue correttamente il lookup del modulo so, in caso contrario, avresti ottenuto un diverso errore. Quello che ti posso consigliare in prima battuta è l’installazione di una JDK e non JRE se non dovesse funzionare, prova a installare una diversa implementazione di Java 11 (OpenJDK), personalmente utilizzo quella di Amazon, so per esperienze di altri, che le OpenJDK impacchettate da Debian portano a problemi.

Spero di averti dato qualche altra dritta utile.

Certo che è utile, grazie Antonio. A questo punto è molto probabile che la causa sia una regressione nella JVM disponibile nel repository testing ufficiale Debian.

La versione dell’applicazione che ha dato problemi è la stessa tua, v1.4.2-1, ma installata da pacchetto deb (immagino che l’artifact sia identico).

Ho provato ad installare JDK al posto di JRE, ma anche con quello ho lo stesso problema.

A questo punto mi resta da testare la versione compilata per bullseye (stable), comunque posso assolutamente accontentarmi di OpenJDK 8, con cui CIE ID funziona perfettamente.

Grazie molte per il supporto!

2 Mi Piace