[JIRA] (JENKINS-43610) Split Trilead out from Core

21 views
Skip to first unread message

o.v.nenashev@gmail.com (JIRA)

unread,
Feb 28, 2019, 8:43:02 AM2/28/19
to jenkinsc...@googlegroups.com
Oleg Nenashev assigned an issue to Ivan Fernandez Calvo
 
Jenkins / Epic JENKINS-43610
Split Trilead out from Core
Change By: Oleg Nenashev
Assignee: Michael Clarke Ivan Fernandez Calvo
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

kuisathaverat@gmail.com (JIRA)

unread,
Mar 10, 2019, 6:34:02 AM3/10/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo updated an issue
Change By: Ivan Fernandez Calvo
Jenkins core currently bundles version 8 of the Jenkins fork of Trilead to provide SSH client functionality. Multiple plugins depend on this provision to utilize Trilead classes, so don't bundle Trilead directly. A new version of Trilead has recently been released containing a number of security enhancements (strong MAC algorithms, strong key exchange methods, curve based cryptographic keys etc), but this requires one of the following:
# Jenkins core to update the bundled Trilead library. This means anyone using the weekly release from the point we include a new bundled library gets the new features, but users who only upgrade plugins or who are on an LTS release are stuck with an old Trilead version
# Any plugin that wants hardened SSH capabilities bundles Trilead directly, but then potentially breaks functionality shared between plugins: SSH credentials uses `Class.isAssignableFrom` to check it can provide credentials, which stops this plugin working if the plugin needing credentials hasn't loaded Trilead from the same classloader (currently core).

Since nothing in Jenkins core actually needs Trilead or the supporting classes that have been added to core for it, the logical change would be
# Copy the Trilead library and supporting classes into a plugin
# Update plugins that require Trilead so they depend on this new plugin
# Remove Trilead from the core and bundle the new Trilead plugin as a detached plugin

More plugins will be added to the components list for this issue as investigation is performed into what plugins depend on Trilead. Some plugins may be updated to remove references to Trilead classes where they're only using utility methods from Trilead, such as Base64 methods and `IOUtils.closeQuitely`.

Current changes required:
||Component||Changes||PR Raised||PR Merged||Change Released||
|Jenkins Core (Phase 1)| # Replace Trilead Base64 references with java.util.Base64 references (various classes)
# Replace Trilead MD5 reference with MessageDigest.getInstance("MD5") (ConsistentHash.java)|
No Yes | n/a Yes | n/a Yes |
|Jenkins Core (Phase 2)| # Move SFTP client into Trilead plugin and remove from core
# Update sshd-module and ssh-cli-module dependencies to latest version
# Remove Trilead dependency from core
# Set Trilead dependency in CLI project to 'optional' to prevent core visibility
# Set Trilead API Plugin as a detached plugin|
Yes| No| n/a No | n/a|
|Token Macro Plugin|Remove unused import to com.trilead.ssh2.crypto.digest.MAC from JobDescriptionMacro|[Yes|https://github.com/jenkinsci/token-macro-plugin/pull/29]|Yes|
No Yes |
|SSHD Module| # Upgrade SSH CLI Module dependency to a new version (1.2 or above)
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|No|No|
|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|No|No|
|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|
No Yes |
|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes|No|

*Other changed to be confirmed*

jglick@cloudbees.com (JIRA)

unread,
Apr 15, 2019, 10:19:02 PM4/15/19
to jenkinsc...@googlegroups.com
Jesse Glick updated an issue
Change By: Jesse Glick
Labels: api jenkins plugin split-plugins-from-core

kuisathaverat@gmail.com (JIRA)

unread,
Apr 16, 2019, 4:21:04 AM4/16/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo updated an issue
Jenkins core currently bundles version 8 of the Jenkins fork of Trilead to provide SSH client functionality. Multiple plugins depend on this provision to utilize Trilead classes, so don't bundle Trilead directly. A new version of Trilead has recently been released containing a number of security enhancements (strong MAC algorithms, strong key exchange methods, curve based cryptographic keys etc), but this requires one of the following:
# Jenkins core to update the bundled Trilead library. This means anyone using the weekly release from the point we include a new bundled library gets the new features, but users who only upgrade plugins or who are on an LTS release are stuck with an old Trilead version
# Any plugin that wants hardened SSH capabilities bundles Trilead directly, but then potentially breaks functionality shared between plugins: SSH credentials uses `Class.isAssignableFrom` to check it can provide credentials, which stops this plugin working if the plugin needing credentials hasn't loaded Trilead from the same classloader (currently core).

Since nothing in Jenkins core actually needs Trilead or the supporting classes that have been added to core for it, the logical change would be
# Copy the Trilead library and supporting classes into a plugin
# Update plugins that require Trilead so they depend on this new plugin
# Remove Trilead from the core and bundle the new Trilead plugin as a detached plugin

More plugins will be added to the components list for this issue as investigation is performed into what plugins depend on Trilead. Some plugins may be updated to remove references to Trilead classes where they're only using utility methods from Trilead, such as Base64 methods and `IOUtils.closeQuitely`.

Current changes required:
||Component||Changes||PR Raised||PR Merged||Change Released||
|Jenkins Core (Phase 1)| # Replace Trilead Base64 references with java.util.Base64 references (various classes)
# Replace Trilead MD5 reference with MessageDigest.getInstance("MD5") (ConsistentHash.java)|Yes|Yes|Yes|

|Jenkins Core (Phase 2)| # Move SFTP client into Trilead plugin and remove from core
# Update sshd-module and ssh-cli-module dependencies to latest version
# Remove Trilead dependency from core
# Set Trilead dependency in CLI project to 'optional' to prevent core visibility
# Set Trilead API Plugin as a detached plugin|Yes|No|No|
|Token Macro Plugin|Remove unused import to com.trilead.ssh2.crypto.digest.MAC from JobDescriptionMacro|[Yes|https://github.com/jenkinsci/token-macro-plugin/pull/29]|Yes|Yes|

|SSHD Module| # Upgrade SSH CLI Module dependency to a new version (1.2 or above)
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]| No Yes | No Yes |

|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]| No Yes | No Yes |
|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|Yes|

|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes|No|

*Other changed to be confirmed*

kuisathaverat@gmail.com (JIRA)

unread,
Apr 16, 2019, 4:24:03 AM4/16/19
to jenkinsc...@googlegroups.com
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|Yes|Yes|

|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]| Yes No | Yes No |

|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|Yes|
|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes|No|

*Other changed to be confirmed*

kuisathaverat@gmail.com (JIRA)

unread,
Jun 20, 2019, 6:53:02 AM6/20/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo commented on Epic JENKINS-43610
 
Re: Split Trilead out from Core

Repositories affected

  • acceptance-test-harness
  • cloudbees-plugin-gateway
  • extras-ec2-launcher
  • svnkit

Plugins affected

  • BlameSubversion
  • digitalocean
  • docker
  • ec2
  • ec2-cloud-axis
  • ec2-plugin
  • external-logging-elasticsearch
  • git-client
  • jclouds
  • libvirt-slave
  • mansion-cloud
  • nodepool-agents
  • openstack-cloud
  • pxe
  • scaleway-cloud
  • ssh-agent
  • ssh-cli
  • ssh-cli-auth
  • ssh-credentials
  • ssh-slaves
  • ssh2easy
  • subversion
  • svn-release-mgr

kuisathaverat@gmail.com (JIRA)

unread,
Jun 20, 2019, 7:12:03 AM6/20/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo updated an issue
Jenkins core currently bundles version 8 of the Jenkins fork of Trilead to provide SSH client functionality. Multiple plugins depend on this provision to utilize Trilead classes, so don't bundle Trilead directly. A new version of Trilead has recently been released containing a number of security enhancements (strong MAC algorithms, strong key exchange methods, curve based cryptographic keys etc), but this requires one of the following:
# Jenkins core to update the bundled Trilead library. This means anyone using the weekly release from the point we include a new bundled library gets the new features, but users who only upgrade plugins or who are on an LTS release are stuck with an old Trilead version
# Any plugin that wants hardened SSH capabilities bundles Trilead directly, but then potentially breaks functionality shared between plugins: SSH credentials uses `Class.isAssignableFrom` to check it can provide credentials, which stops this plugin working if the plugin needing credentials hasn't loaded Trilead from the same classloader (currently core).

Since nothing in Jenkins core actually needs Trilead or the supporting classes that have been added to core for it, the logical change would be
# Copy the Trilead library and supporting classes into a plugin
# Update plugins that require Trilead so they depend on this new plugin
# Remove Trilead from the core and bundle the new Trilead plugin as a detached plugin

More plugins will be added to the components list for this issue as investigation is performed into what plugins depend on Trilead. Some plugins may be updated to remove references to Trilead classes where they're only using utility methods from Trilead, such as Base64 methods and `IOUtils.closeQuitely`.

Current changes required:
||Component||Changes||PR Raised||PR Merged||Change Released||
|Jenkins Core (Phase 1)| # Replace Trilead Base64 references with java.util.Base64 references (various classes)
# Replace Trilead MD5 reference with MessageDigest.getInstance("MD5") (ConsistentHash.java)|Yes|Yes|Yes|
|Jenkins Core (Phase 2)| # Move SFTP client into Trilead plugin and remove from core
# Update sshd-module and ssh-cli-module dependencies to latest version
# Remove Trilead dependency from core
# Set Trilead dependency in CLI project to 'optional' to prevent core visibility
# Set Trilead API Plugin as a detached plugin|Yes|No|No|
|Token Macro Plugin|Remove unused import to com.trilead.ssh2.crypto.digest.MAC from JobDescriptionMacro|[Yes|https://github.com/jenkinsci/token-macro-plugin/pull/29]|Yes|Yes|
|SSHD Module| # Upgrade SSH CLI Module dependency to a new version (1.2 or above)
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|Yes|Yes|
|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|No|No|

|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|Yes|
|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes| No Yes |


*Other changed to be confirmed*

o.v.nenashev@gmail.com (JIRA)

unread,
Jul 15, 2019, 6:25:03 AM7/15/19
to jenkinsc...@googlegroups.com
Oleg Nenashev resolved as Fixed
 

It was released in 2.185 and caused JENKINS-58483

Change By: Oleg Nenashev
Status: In Progress Resolved
Resolution: Fixed
Released As: Jenkins 2.185

o.v.nenashev@gmail.com (JIRA)

unread,
Jul 15, 2019, 6:26:05 AM7/15/19
to jenkinsc...@googlegroups.com
Oleg Nenashev reopened an issue
 

Reopening since it is an EPIC

Change By: Oleg Nenashev
Resolution: Fixed
Status: Resolved Reopened

o.v.nenashev@gmail.com (JIRA)

unread,
Jul 17, 2019, 11:18:04 AM7/17/19
to jenkinsc...@googlegroups.com
Oleg Nenashev commented on Epic JENKINS-43610
 
Re: Split Trilead out from Core

Jenkins 2.186 integrates the regression fixes. https://jenkins.io/changelog/#v2.186

I assume this EPIC is completed, unless new regressions are reported

o.v.nenashev@gmail.com (JIRA)

unread,
Jul 17, 2019, 11:18:08 AM7/17/19
to jenkinsc...@googlegroups.com
Change By: Oleg Nenashev
Status: Reopened Fixed but Unreleased
Resolution: Fixed
Released As: Jenkins 2. 185 186

kuisathaverat@gmail.com (JIRA)

unread,
Jul 18, 2019, 4:03:05 AM7/18/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo updated an issue
Jenkins core currently bundles version 8 of the Jenkins fork of Trilead to provide SSH client functionality. Multiple plugins depend on this provision to utilize Trilead classes, so don't bundle Trilead directly. A new version of Trilead has recently been released containing a number of security enhancements (strong MAC algorithms, strong key exchange methods, curve based cryptographic keys etc), but this requires one of the following:
# Jenkins core to update the bundled Trilead library. This means anyone using the weekly release from the point we include a new bundled library gets the new features, but users who only upgrade plugins or who are on an LTS release are stuck with an old Trilead version
# Any plugin that wants hardened SSH capabilities bundles Trilead directly, but then potentially breaks functionality shared between plugins: SSH credentials uses `Class.isAssignableFrom` to check it can provide credentials, which stops this plugin working if the plugin needing credentials hasn't loaded Trilead from the same classloader (currently core).

Since nothing in Jenkins core actually needs Trilead or the supporting classes that have been added to core for it, the logical change would be
# Copy the Trilead library and supporting classes into a plugin
# Update plugins that require Trilead so they depend on this new plugin
# Remove Trilead from the core and bundle the new Trilead plugin as a detached plugin

More plugins will be added to the components list for this issue as investigation is performed into what plugins depend on Trilead. Some plugins may be updated to remove references to Trilead classes where they're only using utility methods from Trilead, such as Base64 methods and `IOUtils.closeQuitely`.

Current changes required:
||Component||Changes||PR Raised||PR Merged||Change Released||
|Jenkins Core (Phase 1)| # Replace Trilead Base64 references with java.util.Base64 references (various classes)
# Replace Trilead MD5 reference with MessageDigest.getInstance("MD5") (ConsistentHash.java)|Yes|Yes|Yes|
|Jenkins Core (Phase 2)| # Move SFTP client into Trilead plugin and remove from core
# Update sshd-module and ssh-cli-module dependencies to latest version
# Remove Trilead dependency from core
# Set Trilead dependency in CLI project to 'optional' to prevent core visibility
# Set Trilead API Plugin as a detached plugin|Yes| No Yes | No Yes |

|Token Macro Plugin|Remove unused import to com.trilead.ssh2.crypto.digest.MAC from JobDescriptionMacro|[Yes|https://github.com/jenkinsci/token-macro-plugin/pull/29]|Yes|Yes|
|SSHD Module| # Upgrade SSH CLI Module dependency to a new version (1.2 or above)
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|Yes|Yes|
|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|No|No|
|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|Yes|
|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes|Yes|


*Other changed to be confirmed*

kuisathaverat@gmail.com (JIRA)

unread,
Jul 18, 2019, 4:04:03 AM7/18/19
to jenkinsc...@googlegroups.com
Ivan Fernandez Calvo updated an issue
Jenkins core currently bundles version 8 of the Jenkins fork of Trilead to provide SSH client functionality. Multiple plugins depend on this provision to utilize Trilead classes, so don't bundle Trilead directly. A new version of Trilead has recently been released containing a number of security enhancements (strong MAC algorithms, strong key exchange methods, curve based cryptographic keys etc), but this requires one of the following:
# Jenkins core to update the bundled Trilead library. This means anyone using the weekly release from the point we include a new bundled library gets the new features, but users who only upgrade plugins or who are on an LTS release are stuck with an old Trilead version
# Any plugin that wants hardened SSH capabilities bundles Trilead directly, but then potentially breaks functionality shared between plugins: SSH credentials uses `Class.isAssignableFrom` to check it can provide credentials, which stops this plugin working if the plugin needing credentials hasn't loaded Trilead from the same classloader (currently core).

Since nothing in Jenkins core actually needs Trilead or the supporting classes that have been added to core for it, the logical change would be
# Copy the Trilead library and supporting classes into a plugin
# Update plugins that require Trilead so they depend on this new plugin
# Remove Trilead from the core and bundle the new Trilead plugin as a detached plugin

More plugins will be added to the components list for this issue as investigation is performed into what plugins depend on Trilead. Some plugins may be updated to remove references to Trilead classes where they're only using utility methods from Trilead, such as Base64 methods and `IOUtils.closeQuitely`.

Current changes required:
||Component||Changes||PR Raised||PR Merged||Change Released||
|Jenkins Core (Phase 1)| # Replace Trilead Base64 references with java.util.Base64 references (various classes)
# Replace Trilead MD5 reference with MessageDigest.getInstance("MD5") (ConsistentHash.java)|Yes|Yes|Yes|
|Jenkins Core (Phase 2)| # Move SFTP client into Trilead plugin and remove from core
# Update sshd-module and ssh-cli-module dependencies to latest version
# Remove Trilead dependency from core
# Set Trilead dependency in CLI project to 'optional' to prevent core visibility
# Set Trilead API Plugin as a detached plugin|Yes|Yes|Yes|

|Token Macro Plugin|Remove unused import to com.trilead.ssh2.crypto.digest.MAC from JobDescriptionMacro|[Yes|https://github.com/jenkinsci/token-macro-plugin/pull/29]|Yes|Yes|
|SSHD Module| # Upgrade SSH CLI Module dependency to a new version (1.2 or above)
# Remove direct references to Trilead classes, instead using SSH CLI Auth Module's key comparison functionality found in newer versions|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]|Yes|Yes|
|SSH CLI Auth Module| # Replace reference to Trilead Base64 with one from Hudson Remoting (could potentially use java.util.Base64, but would required bump to Java 8 which I'm not planning on doing)
# Replace reference to Trilead TypesWriter in PublicKeySignatureWriter with a simple PEM writer (only need to support BigInteger, String, int, and byte arrays)|[Yes|https://github.com/jenkinsci/ssh-cli-auth-module/pull/5]| No Yes | No Yes |

|Credentials Plugin|Replace references to Trilead Base64 in CertificateCredentialsImpl.java with hudson.remoting.Base64|[Yes|https://github.com/jenkinsci/credentials-plugin/pull/84/files]|Yes|Yes|
|Trilead API Plugin|Create new plugin containing Trilead library from Jenkins core and release it to update centre|Yes|Yes|Yes|

*Other changed to be confirmed*

jglick@cloudbees.com (JIRA)

unread,
Sep 27, 2019, 8:06:02 AM9/27/19
to jenkinsc...@googlegroups.com
Change By: Jesse Glick
Status: Fixed but Unreleased Resolved
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

dicomj23@gmail.com (JIRA)

unread,
Oct 4, 2019, 1:50:05 PM10/4/19
to jenkinsc...@googlegroups.com
Dicom J commented on Epic JENKINS-43610
 
Re: Split Trilead out from Core

Oleg Nenashev, with that amount of plugins

configuration-as-code-support:latest
configuration-as-code:latest
credentials-binding:latest
docker-workflow:latest
filesystem_scm:latest
git:latest
pipeline-model-definition:latest
pipeline-utility-steps:latest
ssh-agent:latest
ssh-steps:latest
workflow-cps:latest
ws-cleanup:latest

all having latest, today I've got something like
`java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey` on scm step

java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey
        at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
        at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
        at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Caused: java.lang.NoClassDefFoundError: org/kohsuke/putty/PuTTYKey
        at com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.getPrivateKeys(BasicSSHUserPrivateKey.java:174)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1878)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1793)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:758)
        at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1152)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
        at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748) 

After explicitly adding trilead-api:latest to the list of plugins issue's gone. So something's wrong with dependencies ?
 

kuisathaverat@gmail.com (JIRA)

unread,
Oct 5, 2019, 5:43:03 AM10/5/19
to jenkinsc...@googlegroups.com

Dicom J Could you open a new issue? and there put the Jenkins Core version, ssh-slaves, and git-client plugin you use

dicomj23@gmail.com (JIRA)

unread,
Oct 5, 2019, 6:15:03 AM10/5/19
to jenkinsc...@googlegroups.com
Dicom J commented on Epic JENKINS-43610

Ivan Fernandez Calvo, you've got it https://issues.jenkins-ci.org/browse/JENKINS-59676. Please find "Environment" section for the details about Jenkins version, plugins and theirs dependencies in square brackets. 

dicomj23@gmail.com (JIRA)

unread,
Oct 5, 2019, 6:15:06 AM10/5/19
to jenkinsc...@googlegroups.com
Dicom J updated an issue
 
Change By: Dicom J
Comment: [~oleg_nenashev], with that amount of plugins
{code:java}

configuration-as-code-support:latest
configuration-as-code:latest
credentials-binding:latest
docker-workflow:latest
filesystem_scm:latest
git:latest
pipeline-model-definition:latest
pipeline-utility-steps:latest
ssh-agent:latest
ssh-steps:latest
workflow-cps:latest
ws-cleanup:latest{code}


all having latest, today I've got something like
`java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey` on scm step
{code:java}

java.lang.ClassNotFoundException: org.kohsuke.putty.PuTTYKey
        at jenkins.util.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
        at jenkins.util.AntClassLoader.findClass(AntClassLoader.java:1336)
        at jenkins.util.AntClassLoader.loadClass(AntClassLoader.java:1083)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
Caused: java.lang.NoClassDefFoundError: org/kohsuke/putty/PuTTYKey
        at com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.getPrivateKeys(BasicSSHUserPrivateKey.java:174)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createSshKeyFile(CliGitAPIImpl.java:1878)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1793)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:78)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:545)
        at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:758)
        at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1152)
        at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1192)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:124)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:93)
        at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:80)
        at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748) {code}


After explicitly adding trilead-api:latest to the list of plugins issue's gone. So something's wrong with dependencies ?
 
Reply all
Reply to author
Forward
0 new messages