Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-54196

Regression: jnidispatch (/com/sun/jna/linux-ppc64/libjnidispatch.so) not found in resource path

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Major Major
    • core

      1. 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.

      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?

            Unassigned Unassigned
            pgtoennies Peter Toennies
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: