[Bug 278443] devel/sonarqube-community: Native library (com/sun/jna/freebsd-aarch64/libjnidispatch.so) not found in resource path () [in thread "main"]

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 18 Apr 2024 21:00:34 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=278443

            Bug ID: 278443
           Summary: devel/sonarqube-community: Native library
                    (com/sun/jna/freebsd-aarch64/libjnidispatch.so) not
                    found in resource path () [in thread "main"]
           Product: Ports & Packages
           Version: Latest
          Hardware: arm64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: netchild@FreeBSD.org
          Reporter: clarkddc@gmail.com
             Flags: maintainer-feedback?(netchild@FreeBSD.org)
          Assignee: netchild@FreeBSD.org

I installed sonarqube-community-10.3.0.82913_3 today on a fresh install of
FreeBSD 14.0 arm64. While troubleshooting why sonarcube wasn't listening on the
default port of 9000, I discovered there was an issue with elasticsearch in the
es.log. This snippet is the most relevant:

java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.Native
        at java.lang.Class.forName0(Native Method) ~[?:?]
        at java.lang.Class.forName(Class.java:375) ~[?:?]
        at
org.elasticsearch.common.filesystem.FileSystemNatives.loadJnaProvider(FileSystemNatives.java:37)
~[elasticsearch-8.11.0.jar:?]
        at
org.elasticsearch.common.filesystem.FileSystemNatives.<clinit>(FileSystemNatives.java:31)
~[elasticsearch-8.11.0.jar:?]
        at
org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:333)
~[elasticsearch-8.11.0.jar:?]
        at
org.elasticsearch.bootstrap.Elasticsearch.initPhase2(Elasticsearch.java:167)
~[elasticsearch-8.11.0.jar:?]
        at
org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:72)
~[elasticsearch-8.11.0.jar:?]
Caused by: java.lang.ExceptionInInitializerError: Exception
java.lang.UnsatisfiedLinkError: Native library
(com/sun/jna/freebsd-aarch64/libjnidispatch.so) not found in resource path ()
[in thread "main"]
        at
com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:1059)
~[jna-5.10.0.jar:?]
        at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:1015)
~[jna-5.10.0.jar:?]
        at com.sun.jna.Native.<clinit>(Native.java:221) ~[jna-5.10.0.jar:?]
        at java.lang.Class.forName0(Native Method) ~[?:?]
        at java.lang.Class.forName(Class.java:375) ~[?:?]
        at org.elasticsearch.bootstrap.Natives.<clinit>(Natives.java:34)
~[elasticsearch-8.11.0.jar:?]
        at
org.elasticsearch.bootstrap.Elasticsearch.initializeNatives(Elasticsearch.java:281)
~[elasticsearch-8.11.0.jar:?]
        ... 2 more

I then verified that the jar file in question:

root@sonarqube:/var/log/sonarqube> jar tvf
/usr/local/libexec/sonarqube/elasticsearch/lib/jna-5.10.0.jar | egrep
'arm64|aarch64'
     0 Mon Nov 08 20:28:44 EST 2021 com/sun/jna/darwin-aarch64/
159768 Wed Oct 06 12:09:54 EDT 2021
com/sun/jna/darwin-aarch64/libjnidispatch.jnilib
     0 Mon Nov 08 20:28:44 EST 2021 com/sun/jna/linux-aarch64/
162296 Wed Oct 06 14:27:13 EDT 2021 com/sun/jna/linux-aarch64/libjnidispatch.so
     0 Mon Nov 08 20:28:44 EST 2021 com/sun/jna/win32-aarch64/
256000 Wed Oct 06 21:00:40 EDT 2021 com/sun/jna/win32-aarch64/jnidispatch.dll

Lastly, I learned from
https://github.com/java-native-access/jna/blob/master/CHANGES.md, that freebsd
aarch64 support won't be added until the 5.15.0 version of the jna library. If
this is correct, why was the current sonarqube-community-10.3.0.82913_3 package
released on the arm64 architecture with the elasticsearch jna-5.10.0.jar
library?

-- 
You are receiving this mail because:
You are the assignee for the bug.