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

[JDK9] Illegal reflective access from remoting

    Details

    • Type: Bug
    • Status: In Review
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: core, remoting
    • Labels:
    • Environment:
      JDK 9, Jenkins 2.60.3 as described in my lts-with-plugins docker instance
    • Similar Issues:

      Description

      While exploring Jenkins 2.60.3 on Oracle Java 9 build 181 (pre-release), it reports illegal access exceptions and warns that a future release of Java 9 will forbid illegal access.

      A stack trace shows:

      WARNING: Illegal reflective access by hudson.remoting.RemoteClassLoader (file:/var/jenkins_home/war/WEB-INF/lib/remoting-3.7.jar) to method java.lang.ClassLoader.getClassLoadingLock(java.lang.String)
              at hudson.remoting.RemoteClassLoader.<clinit>(RemoteClassLoader.java:330)
              at hudson.remoting.MultiClassLoaderSerializer$Output.annotateClass(MultiClassLoaderSerializer.java:69)
              at java.base/java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1291)
              at java.base/java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1232)
              at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1428)
              at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
              at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
              at hudson.remoting.UserRequest._serialize(UserRequest.java:190)
              at hudson.remoting.UserRequest.serialize(UserRequest.java:199)
              at hudson.remoting.UserRequest.<init>(UserRequest.java:64)
              at hudson.remoting.Channel.call(Channel.java:828)
              at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:517)
              at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:390)
              at hudson.plugins.sshslaves.SSHLauncher.startSlave(SSHLauncher.java:1074)
              at hudson.plugins.sshslaves.SSHLauncher.access$500(SSHLauncher.java:145)
              at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:818)
              at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:793)
              at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
              at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
              at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
              at java.base/java.lang.Thread.run(Thread.java:844)
      

      If it helps you to duplicate the scenario with current Jenkins environment, I have a Dockerfile configured which will run the latest Jenkins Long Term Support release.

      To duplicate the problem:

      1. Clone, build, and run the docker instance
          $ git lfs clone https://github.com/MarkEWaite/docker-lfs JENKINS-46724
          $ cd JENKINS-46724
          $ git lfs fetch origin origin/lts-jdk9-with-plugins
          $ git checkout -b lts-jdk9-with-plugins -t origin/lts-jdk9-with-plugins
          $ docker build -t  lts-jdk9-with-plugins:latest .
          $ docker run -i --rm --publish 8080:8080 lts-jdk9-with-plugins:latest
        

        Attachments

          Activity

            People

            • Assignee:
              oleg_nenashev Oleg Nenashev
              Reporter:
              markewaite Mark Waite
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated: