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

CLONE - InvalidClassException for SSHAuthenticator$1 when doing a git clone on an Linux Z series, Linux P series, and Linux P LE series slaves

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • ssh-credentials-plugin
    • None

    Description

      Attempting to clone a git repo at the start of a build on an Linux Z, P, and PLE slaves.
      This exception was triggered:

      ERROR: Error cloning remote repo 'origin'
      hudson.plugins.git.GitException: org.eclipse.jgit.api.errors.TransportException: git@<<host>>:<<org/user>>/<<repo>>.git: Failed to connect
       	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$5.execute(JGitAPIImpl.java:1342)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:153)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:50)
       	at hudson.remoting.Request$2.run(Request.java:332)
       	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
       	at java.util.concurrent.FutureTask.run(FutureTask.java:273)
       	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
       	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
       	at java.lang.Thread.run(Thread.java:804)
       	at ......remote call to cxp01006(Native Method)
       	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1433)
       	at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
       	at hudson.remoting.Channel.call(Channel.java:797)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:145)
       	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       	at java.lang.reflect.Method.invoke(Method.java:606)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:131)
       	at com.sun.proxy.$Proxy79.execute(Unknown Source)
       	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1042)
       	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1082)
       	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)
       	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)
       	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)
       	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52)
       	at hudson.security.ACL.impersonate(ACL.java:221)
       	at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49)
       	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
       	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
       	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
       	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
       	at java.lang.Thread.run(Thread.java:745)
       Caused by: org.eclipse.jgit.api.errors.TransportException: git@<<host>>:<<org/user>>/<<repo>>.git: Failed to connect
       	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:135)
       	at org.jenkinsci.plugins.gitclient.JGitAPIImpl$5.execute(JGitAPIImpl.java:1334)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:152)
       	at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:145)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:153)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:50)
       	at hudson.remoting.Request$2.run(Request.java:332)
       	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
       	at java.util.concurrent.FutureTask.run(FutureTask.java:273)
       	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
       	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:626)
       	at java.lang.Thread.run(Thread.java:804)
       Caused by: org.eclipse.jgit.errors.TransportException: git@<<host>>:<<org/user>>/<<repo>>.git: Failed to connect
       	at org.jenkinsci.plugins.gitclient.trilead.TrileadSessionFactory.getSession(TrileadSessionFactory.java:52)
       	at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:137)
       	at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:264)
       	at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:162)
       	at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
       	at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
       	at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1201)
       	at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:128)
       	... 11 more
       Caused by: java.io.InvalidClassException: com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator$1; local class incompatible: stream classdesc serialVersionUID = -433939568866278210, local class serialVersionUID = -3620413587770635304
       	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:612)
       	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
       	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
       	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
       	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
       	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
       	at hudson.remoting.UserRequest.deserialize(UserRequest.java:217)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:131)
       	at hudson.remoting.UserRequest.perform(UserRequest.java:50)
       	at hudson.remoting.Request$2.run(Request.java:332)
       	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
       	at org.jenkinsci.remoting.CallableDecorator.call(CallableDecorator.java:18)
       	at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21)
       	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
       	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
       	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
       	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
       	at java.lang.Thread.run(Thread.java:745)
       	at ......remote call to channel(Native Method)
       	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1433)
       	at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
       	at hudson.remoting.Channel.call(Channel.java:797)
       	at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.newInstance(SSHAuthenticator.java:201)
       	at org.jenkinsci.plugins.gitclient.trilead.TrileadSessionFactory.getSession(TrileadSessionFactory.java:38)
       	... 18 more
      

      Original Defect's exception stack

      FATAL: Failed to fetch from ssh://<gitid>@<githost>/<gitrepo>.git
      hudson.plugins.git.GitException: Failed to fetch from ssh://<gitid>@<githost>/<gitrepo>.git
         at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:623)
         at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:855)
         at hudson.plugins.git.GitSCM.checkout(GitSCM.java:880)
         at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
         at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
         at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
         at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:561)
         at hudson.model.Run.execute(Run.java:1665)
         at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
         at hudson.model.ResourceController.execute(ResourceController.java:88)
         at hudson.model.Executor.run(Executor.java:246)
      Caused by: hudson.plugins.git.GitException: org.eclipse.jgit.api.errors.TransportException: ssh://<gitid>@<githost>/<gitrepo>.git: Failed to connect
         at org.jenkinsci.plugins.gitclient.JGitAPIImpl$2.execute(JGitAPIImpl.java:460)
         at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
         at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
         at hudson.remoting.UserRequest.perform(UserRequest.java:118)
         at hudson.remoting.UserRequest.perform(UserRequest.java:48)
         at hudson.remoting.Request$2.run(Request.java:328)
         at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:345)
         at java.util.concurrent.FutureTask.run(FutureTask.java:177)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1121)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
         at java.lang.Thread.run(Thread.java:769)
      Caused by: org.eclipse.jgit.api.errors.TransportException: ssh://<gitid>@<githost>/<gitrepo>.git: Failed to connect
         at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:139)
         at org.jenkinsci.plugins.gitclient.JGitAPIImpl$2.execute(JGitAPIImpl.java:458)
         ... 11 more
      Caused by: org.eclipse.jgit.errors.TransportException: ssh://<gitid>@<githost>/<gitrepo>.git: Failed to connect
         at org.jenkinsci.plugins.gitclient.trilead.TrileadSessionFactory.getSession(TrileadSessionFactory.java:53)
         at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:121)
         at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:248)
         at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:147)
         at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:136)
         at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:122)
         at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1111)
         at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:130)
         ... 12 more
      Caused by: java.io.InvalidClassException: com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator$1; local class incompatible: stream classdesc serialVersionUID = 4226456448964168241, local class serialVersionUID = 8217644684038495097
          at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
          at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
          at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
          at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
          at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
          at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
          at hudson.remoting.UserRequest.deserialize(UserRequest.java:182)
          at hudson.remoting.UserRequest.perform(UserRequest.java:98)
          at hudson.remoting.UserRequest.perform(UserRequest.java:48)
          at hudson.remoting.Request$2.run(Request.java:328)
          at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:722)
      

      Attachments

        Issue Links

          Activity

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java
            http://jenkins-ci.org/commit/ssh-credentials-plugin/84af7f89521eaa1089433d90d294e9a99a6fd8d3
            Log:
            Merge pull request #26 from kevin-j-smith/master

            JENKINS-39836: InvalidClassException for SSHAuthenticator on many dif…

            Compare: https://github.com/jenkinsci/ssh-credentials-plugin/compare/eecc3fc48870...84af7f89521e

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java http://jenkins-ci.org/commit/ssh-credentials-plugin/84af7f89521eaa1089433d90d294e9a99a6fd8d3 Log: Merge pull request #26 from kevin-j-smith/master JENKINS-39836 : InvalidClassException for SSHAuthenticator on many dif… Compare: https://github.com/jenkinsci/ssh-credentials-plugin/compare/eecc3fc48870...84af7f89521e

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java
            http://jenkins-ci.org/commit/ssh-credentials-plugin/56a51725352396bdf29b2c5defbf9566213002ae
            Log:
            JENKINS-39836 Use value from serialver command

            ```
            com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator$Matcher: static final long serialVersionUID = -5078593817273453864L
            ```

            (this is the generated value on: oracle java 7 and java 8, openjdk 7 and 8, and Zulu 8)

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java http://jenkins-ci.org/commit/ssh-credentials-plugin/56a51725352396bdf29b2c5defbf9566213002ae Log: JENKINS-39836 Use value from serialver command ``` com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator$Matcher: static final long serialVersionUID = -5078593817273453864L ``` (this is the generated value on: oracle java 7 and java 8, openjdk 7 and 8, and Zulu 8)

            Code changed in jenkins
            User: Kevin J. Smith
            Path:
            src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java
            http://jenkins-ci.org/commit/ssh-credentials-plugin/f773d7c7df2e2e612cc1d6dcac4688d038ce1bd1
            Log:
            JENKINS-39836: InvalidClassException for SSHAuthenticator on many different platforms. Matcher needs a serialVersionUID to cover for the many variances of jdk/jre(s) available on different platforms.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kevin J. Smith Path: src/main/java/com/cloudbees/jenkins/plugins/sshcredentials/SSHAuthenticator.java http://jenkins-ci.org/commit/ssh-credentials-plugin/f773d7c7df2e2e612cc1d6dcac4688d038ce1bd1 Log: JENKINS-39836 : InvalidClassException for SSHAuthenticator on many different platforms. Matcher needs a serialVersionUID to cover for the many variances of jdk/jre(s) available on different platforms.
            ksmith1874 Kevin Smith added a comment -

            After some research I recognized that SSHAuthenticator.Matcher did not define a serialVersionUID and was a Serializable class due to CredentialsMatcher. I added a concrete value for this and now every platform and jdk/jre now works successfully.

            ksmith1874 Kevin Smith added a comment - After some research I recognized that SSHAuthenticator.Matcher did not define a serialVersionUID and was a Serializable class due to CredentialsMatcher. I added a concrete value for this and now every platform and jdk/jre now works successfully.

            People

              ksmith1874 Kevin Smith
              ksmith1874 Kevin Smith
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: