-
Bug
-
Resolution: Won't Fix
-
Major
-
# uname -a
Linux localhost 3.10.0-693.el7.ppc64 #1 SMP Thu Jul 6 20:01:28 EDT 2017 ppc64 ppc64 ppc64 GNU/Linux
java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 8.0.5.16 - pxp6480sr5fp16-20180524_01(SR5 FP16))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux ppc64-64-Bit Compressed References 20180523_387150 (JIT enabled, AOT enabled)
OpenJ9 - c81abfb
OMR - f3f8112
IBM - 4f87eeb)
JCL - 20180515_01 based on Oracle jdk8u171-b11
# uname -a Linux localhost 3.10.0-693.el7.ppc64 #1 SMP Thu Jul 6 20:01:28 EDT 2017 ppc64 ppc64 ppc64 GNU/Linux java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 8.0.5.16 - pxp6480sr5fp16-20180524_01(SR5 FP16)) IBM J9 VM (build 2.9, JRE 1.8.0 Linux ppc64-64-Bit Compressed References 20180523_387150 (JIT enabled, AOT enabled) OpenJ9 - c81abfb OMR - f3f8112 IBM - 4f87eeb) JCL - 20180515_01 based on Oracle jdk8u171-b11
- rpm -q jenkins
jenkins-2.138.2-1.1.noarch
Today I tried upgrade from jenkins-2.89.4-1.1 to jenkins 2.138.2-1.1 on a RHEL7 ppc64 machine. I am getting a java.lang.UnsatisfiedLinkError for 'Native library (com/sun/jna/linux-ppc64/libjnidispatch.so) not found in resource path'. The complete output is:
- Unit jenkins.service has begun starting up.
Oct 22 12:57:10 <computer name> runuser[20830]: pam_unix(runuser:session): session opened for user root by (uid=0)
Oct 22 12:57:12 <computer name> jenkins[20825]: Starting Jenkins Exception in thread "main" java.lang.reflect.InvocationTargetException
Oct 22 12:57:12 <computer name> jenkins[20825]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Oct 22 12:57:12 <computer name> jenkins[20825]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
Oct 22 12:57:12 <computer name> jenkins[20825]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
Oct 22 12:57:12 <computer name> jenkins[20825]: at java.lang.reflect.Method.invoke(Method.java:508)
Oct 22 12:57:12 <computer name> jenkins[20825]: at Main._main(Main.java:227)
Oct 22 12:57:12 <computer name> jenkins[20825]: at Main.main(Main.java:160)
Oct 22 12:57:12 <computer name> jenkins[20825]: Caused by: java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/linux-ppc64/libjnidispatch.so) not found in resource path (file:/tmp/jna7389605851826903872jar, file:/tmp/akuma9008425977486382467jar)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.jna.Native.<clinit>(Native.java:190)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.CLibrary.<clinit>(CLibrary.java:89)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.JavaVMArguments.resolvePID(JavaVMArguments.java:128)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.JavaVMArguments.ofLinux(JavaVMArguments.java:116)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.JavaVMArguments.of(JavaVMArguments.java:104)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.JavaVMArguments.current(JavaVMArguments.java:92)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.Daemon.daemonize(Daemon.java:106)
Oct 22 12:57:12 <computer name> jenkins[20825]: at com.sun.akuma.Daemon.all(Daemon.java:88)
Oct 22 12:57:12 <computer name> jenkins[20825]: ... 6 more
Oct 22 12:57:12 <computer name> runuser[20830]: pam_unix(runuser:session): session closed for user root
Oct 22 12:57:12 <computer name> jenkins[20825]: [FAILED]
Oct 22 12:57:12 <computer name> systemd[1]: jenkins.service: control process exited, code=exited status=1
Oct 22 12:57:12 <computer name> systemd[1]: Failed to start LSB: Jenkins Automation Server. - Subject: Unit jenkins.service has failed
- Defined-By: systemd
- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Unit jenkins.service has failed.
- - The result is failed.
- Unit jenkins.service has failed.
Jenkins starts up fine with 2.89.4-1.1, but not with the most recent stable version of 2.138.2-1.1. Is this a regression? Does anyone have suggestions on how to get Jenkins to start? Do I need to download something additional?
I compared the jenkins.war file between jenkins-2.89.4-1.1 and jenkins 2.138.2-1.1 and found these differences affecting the above.
The 2.89 jenkins.war file contains jna-4.2.1.jar and the 2.138 jenkins.war file contains jna-4.5.2.jar. I unjarred both of these and found that the 2.89 jna-4.2.1.jar file has these libjnidispatch.so files:
./com/sun/jna/linux-x86/libjnidispatch.so
./com/sun/jna/linux-x86-64/libjnidispatch.so
./com/sun/jna/linux-arm/libjnidispatch.so
./com/sun/jna/linux-aarch64/libjnidispatch.so
./com/sun/jna/linux-ppc64/libjnidispatch.so
./com/sun/jna/linux-ppc64le/libjnidispatch.so
./com/sun/jna/linux-sparcv9/libjnidispatch.so
./com/sun/jna/sunos-x86/libjnidispatch.so
./com/sun/jna/sunos-x86-64/libjnidispatch.so
./com/sun/jna/sunos-sparc/libjnidispatch.so
./com/sun/jna/sunos-sparcv9/libjnidispatch.so
./com/sun/jna/freebsd-x86/libjnidispatch.so
./com/sun/jna/freebsd-x86-64/libjnidispatch.so
./com/sun/jna/openbsd-x86/libjnidispatch.so
./com/sun/jna/openbsd-x86-64/libjnidispatch.so
and the jna-4.5.2 jar file has these:
./com/sun/jna/linux-x86/libjnidispatch.so
./com/sun/jna/linux-x86-64/libjnidispatch.so
./com/sun/jna/linux-arm/libjnidispatch.so
./com/sun/jna/linux-armel/libjnidispatch.so
./com/sun/jna/linux-aarch64/libjnidispatch.so
./com/sun/jna/linux-ppc/libjnidispatch.so
./com/sun/jna/linux-ppc64le/libjnidispatch.so
./com/sun/jna/linux-mips64el/libjnidispatch.so
./com/sun/jna/linux-s390x/libjnidispatch.so
./com/sun/jna/sunos-x86/libjnidispatch.so
./com/sun/jna/sunos-x86-64/libjnidispatch.so
./com/sun/jna/sunos-sparc/libjnidispatch.so
./com/sun/jna/sunos-sparcv9/libjnidispatch.so
./com/sun/jna/freebsd-x86/libjnidispatch.so
./com/sun/jna/freebsd-x86-64/libjnidispatch.so
./com/sun/jna/openbsd-x86/libjnidispatch.so
./com/sun/jna/openbsd-x86-64/libjnidispatch.so
It looks like the jna-4.5.2.jar file is not including these:
./com/sun/jna/linux-ppc64/libjnidispatch.so
./com/sun/jna/linux-sparcv9/libjnidispatch.so
And added these:
./com/sun/jna/linux-armel/libjnidispatch.so
./com/sun/jna/linux-ppc/libjnidispatch.so
./com/sun/jna/linux-mips64el/libjnidispatch.so
./com/sun/jna/linux-s390x/libjnidispatch.so
I think I really need ./com/sun/jna/linux-ppc64/libjnidispatch.so in order for Jenkins to work on our ppc64 machines. Can this be added back? Is there a workaround?
I did not have the above problem when installing Jenkins 2.135.1-1 from https://pkg.jenkins.io/redhat/. I can see from https://jenkins.io/changelog/ that in Jenkins 2.136 the following:
Update JNA from 4.2.1 to 4.5.2 to add support for s390x, update GNU C minimal requirement to 2.7 on Unix platforms. (issue 52771)
Apparently, the JNA 4.5.2 version added support for some things but removed support for other things. Can the JNA version included with Jenkins add back the Linux ppc64 support for libjnidispatch.so?