Open timja opened 6 years ago
Hi, Craig. I am not sure what you are asking me.
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?
I'm asking you which JNA release has the library you need: https://github.com/java-native-access/jna/releases
Oh, the one from JNA 4.2.1 worked fine for me.
Was the ppc64 support removed in the more recent JNA versions intentionally or was this an oversight?
You are asking in the wrong place https://github.com/java-native-access/jna is a project separate from Jenkins, so you need to ask there about changes to the library.
Also, does JNA 5.0.0 have the ppc64 library you need?
I looked at jna 4.2.1, 4.5.2, and 5.0.0 from https://github.com/java-native-access/jna/releases. In each tar.gz file I found a lib/native/linux-ppc64.jar file. When I unjarred these from each one, the jna 4.2.1 version contained a libjnidispatch.so. However, the others contained a file named "OUT_OF_DATE" with contents "This file is out of date and needs to be rebuilt". I wonder what that means. I wonder if that means that this version is no longer supported or that there build process is broken.
I guess I will try to post something on the github link to try to figure out what is going on.
Yes you should ask on that project's site. In addition, I would recommend that you try to build the jna jar file from scratch on your ppc64 hardware and see if you can build the ppc64 library you need. ppc64 is not so commonly available hardware these days, so could be that the project maintainers don't have access to hardware to build the library you need.
I was about to open a ticket at https://github.com/java-native-access/jna/issues/new, but the template comments in bug said to go to https://groups.google.com/forum/#!forum/jna-users first. I went there and started a discussion with subject "The libjnidispatch.so file is missing for Linux ppc64 from JNA 4.5.2 which is used with Jenkins 2.138+"
Also, I can probably try to use the Jenkins version that was the last to use JNA 4.2.1. I think that is jenkins-2.135-1.1.noarch.rpm. I would like to at least go to Jenkins version 2.125 which fixes this issue: "Do not remove workspaces for projects with builds in progress. (issue 27329)". However, I was hoping to use a stable version. The first stable version at 2.125 or higher is 2.138 which is the one I originally tried to use that has JNA 4.5.2 and is missing the libjnidispatch.so that I need.
[Epic: JENKINS-61774]
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:
Oct 22 12:57:10
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
Oct 22 12:57:12
-
-
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?
Originally reported by pgtoennies, imported from: Regression: jnidispatch (/com/sun/jna/linux-ppc64/libjnidispatch.so) not found in resource path