jenkinsci / datadog-plugin

A Jenkins plugin used to forward metrics, events, and service checks to an account at Datadog, automatically.
https://plugins.jenkins.io/datadog/
MIT License
30 stars 48 forks source link

Getting exception NoClassDefFoundError #411

Closed davidamir10 closed 3 months ago

davidamir10 commented 3 months ago

Describe the bug We using jenkins 2.439-alpine-jdk17 on eks with DD plugin. After adding setProperty script to our image, we deployed and got an exception during pipeline run:

git rev-list --no-walk ...

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during conversion: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/gitclient/RepositoryCallback

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/gitclient/RepositoryCallback at org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1123) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1101) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579) at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323) at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox$Scope.parse(GroovySandbox.java:163) at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:190) at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:175) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:635) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:581) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:335) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/gitclient/RepositoryCallback at org.datadog.jenkins.plugins.datadog.model.BuildData.isGit(BuildData.java:494) at org.datadog.jenkins.plugins.datadog.model.BuildData.populateEnvVariables(BuildData.java:359) at org.datadog.jenkins.plugins.datadog.model.BuildData.(BuildData.java:156) at org.datadog.jenkins.plugins.datadog.listeners.DatadogSCMListener.onCheckout(DatadogSCMListener.java:93) at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:182) at org.jenkinsci.plugins.workflow.libs.SCMBasedRetriever.lambda$doRetrieve$4(SCMBasedRetriever.java:200) at org.jenkinsci.plugins.workflow.libs.SCMBasedRetriever.retrySCMOperation(SCMBasedRetriever.java:222) at org.jenkinsci.plugins.workflow.libs.SCMBasedRetriever.doRetrieve(SCMBasedRetriever.java:199) at org.jenkinsci.plugins.workflow.libs.SCMSourceRetriever.retrieve(SCMSourceRetriever.java:79) at org.jenkinsci.plugins.workflow.libs.LibraryAdder.retrieve(LibraryAdder.java:264) at org.jenkinsci.plugins.workflow.libs.LibraryAdder.add(LibraryAdder.java:151) at org.jenkinsci.plugins.workflow.libs.LibraryDecorator$1.call(LibraryDecorator.java:125) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1087) ... 13 more Caused by: java.lang.ClassNotFoundException: org.jenkinsci.plugins.gitclient.RepositoryCallback at java.base/java.net.URLClassLoader.findClass(Unknown Source) at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:35) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ... 26 more

1 error

at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:309)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1107)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:624)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:602)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:579)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:323)
at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:293)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox$Scope.parse(GroovySandbox.java:163)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:190)
at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:175)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:635)
at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:581)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:335)
at hudson.model.ResourceController.execute(ResourceController.java:101)
at hudson.model.Executor.run(Executor.java:442)

We then upgraded DD plugin from 5.6.1 to 6.02. This solved the above error, but we are not getting metrics any more. In jenkins log we see exceptions like:

Apr 11, 2024 11:27:08 AM WARNING jenkins.util.Listeners lambda$notify$0 null java.lang.ClassNotFoundException: org.jenkinsci.plugins.gitclient.RepositoryCallback at java.base/java.net.URLClassLoader.findClass(Unknown Source) at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:35) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) Caused: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/gitclient/RepositoryCallback at org.datadog.jenkins.plugins.datadog.model.BuildData.isGit(BuildData.java:512) at org.datadog.jenkins.plugins.datadog.model.BuildData.populateEnvVariables(BuildData.java:370) at org.datadog.jenkins.plugins.datadog.model.BuildData.(BuildData.java:160) at org.datadog.jenkins.plugins.datadog.listeners.DatadogBuildListener.onInitialize(DatadogBuildListener.java:107) at hudson.model.listeners.RunListener.lambda$fireInitialize$1(RunListener.java:218) at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59) at jenkins.util.Listeners.notify(Listeners.java:67) at hudson.model.listeners.RunListener.fireInitialize(RunListener.java:216) at hudson.model.Run.onStartBuilding(Run.java:2032) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:288) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442)

Label the issue properly.

To Reproduce Steps to reproduce the behavior: This issue observed when we redeployed jenkins base image 2.439-alpine-jdk17 and added setProperty script The issue started after the controller was up again.

Expected behavior Metrics are sent successfully

Environment and Versions (please complete the following information): A clear and precise description of your setup:

Additional context I upgraded jenkins as well as all other plugin to latest, issue still persists.

dduportal commented 3 months ago

Same issue appeared on ci.jenkins.io.

The error appeared after upgrading the following plugins today (11 April 2024):

aws-java-sdk-ec2
aws-java-sdk-minimal
blueocean-bitbucket-pipeline
blueocean-commons
blueocean-config
blueocean-core-js
blueocean-dashboard
blueocean-events
blueocean-git-pipeline
blueocean-github-pipeline
blueocean-i18n
blueocean-jwt
blueocean-personalization
blueocean-pipeline-api-impl
blueocean-pipeline-editor
blueocean-pipeline-scm-api
blueocean-rest-impl
blueocean-rest
blueocean-web
blueocean
github-branch-source
jenkins-design-language
pipeline-graph-view
pipeline-model-api
pipeline-model-definition
pipeline-model-extensions
pipeline-stage-tags-metadata
script-security
ssh-agent
support-core

(edit) We had to remove the datadog-plugin and it JCasc configuration in order to have ci.jenkins.io.

(edit2) Here is the full list of plugins and version. ci.jenkins.io uses the latest LTS 2.440.2.

analysis-model-api: 12.1.0
ansicolor: 1.0.4
antisamy-markup-formatter: 162.v0e6ec0fcfcf6
apache-httpcomponents-client-4-api: 4.5.14-208.v438351942757
artifact-manager-s3: 845.848.ve968b_8576c1c
asm-api: 9.7-33.v4d23ef79fcc8
authentication-tokens: 1.53.v1c90fd9191a_b_
aws-credentials: 231.v08a_59f17d742
aws-global-configuration: 130.v35b_7b_96f53c3
aws-java-sdk-ec2: 1.12.696-451.v0651a_da_9ca_ec
aws-java-sdk-minimal: 1.12.696-451.v0651a_da_9ca_ec
azure-container-agents: 253.vd2f5cd5c5040
azure-credentials: 312.v0f3973cd1e59
azure-sdk: 157.v855da_0b_eb_dc2
azure-vm-agents: 921.v76424a_e24594
blueocean-bitbucket-pipeline: 1.27.12
blueocean-commons: 1.27.12
blueocean-config: 1.27.12
blueocean-core-js: 1.27.12
blueocean-dashboard: 1.27.12
blueocean-display-url: 2.4.2
blueocean-events: 1.27.12
blueocean-git-pipeline: 1.27.12
blueocean-github-pipeline: 1.27.12
blueocean-i18n: 1.27.12
blueocean-jwt: 1.27.12
blueocean-personalization: 1.27.12
blueocean-pipeline-api-impl: 1.27.12
blueocean-pipeline-editor: 1.27.12
blueocean-pipeline-scm-api: 1.27.12
blueocean-rest-impl: 1.27.12
blueocean-rest: 1.27.12
blueocean-web: 1.27.12
blueocean: 1.27.12
bootstrap5-api: 5.3.3-1
bouncycastle-api: 2.30.1.77-225.v26ea_c9455fd9
branch-api: 2.1152.v6f101e97dd77
build-discarder: 139.v05696a_7fe240
buildtriggerbadge: 251.vdf6ef853f3f5
caffeine-api: 3.1.8-133.v17b_1ff2e0599
checks-api: 2.2.0
cloud-stats: 336.v788e4055508b_
cloudbees-bitbucket-branch-source: 883.v041fa_695e9c2
cloudbees-folder: 6.901.vb_4c7a_da_75da_3
commons-lang3-api: 3.13.0-62.v7d18e55f51e2
commons-text-api: 1.11.0-95.v22a_d30ee5d36
config-file-provider: 968.ve1ca_eb_913f8c
configuration-as-code: 1775.v810dc950b_514
copyartifact: 722.v0662a_9b_e22a_c
coverage-badges-extension: 47.v41e62ecf0928
coverage: 1.13.0
credentials-binding: 657.v2b_19db_7d6e6d
credentials: 1337.v60b_d7b_c7b_c9f
dark-theme: 439.vdef09f81f85e
data-tables-api: 2.0.3-1
display-url-api: 2.200.vb_9327d658781
docker-commons: 439.va_3cb_0a_6a_fb_29
docker-workflow: 572.v950f58993843
durable-task: 550.v0930093c4b_a_6
echarts-api: 5.5.0-1
embeddable-build-status: 467.v4a_954796e45d
favorite: 2.208.v91d65b_7792a_c
font-awesome-api: 6.5.1-3
forensics-api: 2.4.0
generic-tool: 1.1
git-client: 4.7.0
git-forensics: 2.1.0
git: 5.2.1
github-api: 1.318-461.v7a_c09c9fa_d63
github-branch-source: 1787.v8b_8cd49a_f8f1
github-checks: 554.vb_ee03a_000f65
github-scm-trait-notification-context: 40.vfa_7f31a_b_d7f8
github: 1.38.0
groovy: 457.v99900cb_85593
gson-api: 2.10.1-15.v0d99f670e0a_7
handy-uri-templates-2-api: 2.1.8-30.v7e777411b_148
htmlpublisher: 1.33
http_request: 1.18
instance-identity: 185.v303dc7c645f9
ionicons-api: 70.v2959a_b_74e3cf
jackson2-api: 2.17.0-379.v02de8ec9f64c
jakarta-activation-api: 2.1.3-1
jakarta-mail-api: 2.1.3-1
javax-activation-api: 1.2.0-6
javax-mail-api: 1.6.2-9
jaxb: 2.3.9-1
jenkins-design-language: 1.27.12
jjwt-api: 0.11.5-112.ve82dfb_224b_a_d
jnr-posix-api: 3.1.19-2
joda-time-api: 2.12.7-29.v5a_b_e3a_82269a_
jquery3-api: 3.7.1-2
jsch: 0.2.16-86.v42e010d9484b_
json-api: 20240303-41.v94e11e6de726
json-path-api: 2.9.0-58.v62e3e85b_a_655
junit-attachments: 205.vc0677977deb_0
junit-realtime-test-reporter: 149.v05a_d403e2f48
junit: 1265.v65b_14fa_f12f0
kubernetes-client-api: 6.10.0-240.v57880ce8b_0b_2
kubernetes-credentials: 0.11
kubernetes: 4203.v1dd44f5b_1cf9
ldap: 719.vcb_d039b_77d0d
lockable-resources: 1246.v28b_e4cc6fa_16
mailer: 472.vf7c289a_4b_420
matrix-auth: 3.2.2
matrix-project: 822.824.v14451b_c0fd42
metrics: 4.2.21-449.v6960d7c54c69
mina-sshd-api-common: 2.12.1-101.v85b_e08b_780dd
mina-sshd-api-core: 2.12.1-101.v85b_e08b_780dd
okhttp-api: 4.11.0-172.vda_da_1feeb_c6e
parallel-test-executor: 473.v81c8f8d1675f
parameterized-trigger: 787.v665fcf2a_830b_
pipeline-build-step: 540.vb_e8849e1a_b_d8
pipeline-github: 2.8-159.09e4403bc62f
pipeline-graph-analysis: 216.vfd8b_ece330ca_
pipeline-graph-view: 237.v8959b_75f3c47
pipeline-groovy-lib: 704.vc58b_8890a_384
pipeline-input-step: 491.vb_07d21da_1a_fb_
pipeline-milestone-step: 119.vdfdc43fc3b_9a_
pipeline-model-api: 2.2198.v41dd8ef6dd56
pipeline-model-definition: 2.2198.v41dd8ef6dd56
pipeline-model-extensions: 2.2198.v41dd8ef6dd56
pipeline-rest-api: 2.34
pipeline-stage-step: 312.v8cd10304c27a_
pipeline-stage-tags-metadata: 2.2198.v41dd8ef6dd56
pipeline-stage-view: 2.34
plain-credentials: 179.vc5cb_98f6db_38
plugin-util-api: 4.1.0
prism-api: 1.29.0-13
pubsub-light: 1.18
scm-api: 689.v237b_6d3a_ef7f
script-security: 1335.vf07d9ce377a_e
snakeyaml-api: 2.2-111.vc6598e30cc65
sse-gateway: 1.26
ssh-agent: 367.vf9076cd4ee21
ssh-credentials: 337.v395d2403ccd4
ssh-slaves: 2.948.vb_8050d697fec
sshd: 3.322.v159e91f6a_550
structs: 337.v1b_04ea_4df7c8
support-core: 1427.v083f1d9372a_f
theme-manager: 215.vc1ff18d67920
timestamper: 1.26
token-macro: 400.v35420b_922dcb_
trilead-api: 2.142.v748523a_76693
variant: 60.v7290fc0eb_b_cd
warnings-ng: 11.2.2
windows-azure-storage: 419.v4046cd70d2e3
workflow-aggregator: 596.v8c21c963d92d
workflow-api: 1291.v51fd2a_625da_7
workflow-basic-steps: 1049.v257a_e6b_30fb_d
workflow-cps: 3894.vd0f0248b_a_fc4
workflow-durable-task-step: 1336.v768003e07199
workflow-job: 1400.v7fd111b_ec82f
workflow-multibranch: 773.vc4fe1378f1d5
workflow-scm-step: 427.v4ca_6512e7df1
workflow-step-api: 657.v03b_e8115821b_
workflow-support: 896.v175a_a_9c5b_78f
psimms-r7 commented 3 months ago

Same here, breaking all builds

rishiv5 commented 3 months ago

Been having the same issue, see #410 Seems to be resolved in #413

@nikita-tkachenko-datadog can I ask if you have a timeline for the new version release?

nikita-tkachenko-datadog commented 3 months ago

@rishiv5 we are planning to release the fix shortly, most likely in 1-2 hours

rishiv5 commented 3 months ago

@rishiv5 we are planning to release the fix shortly, most likely in 1-2 hours

Awesome, thanks!

dduportal commented 3 months ago

Thanks @nikita-tkachenko-datadog !

nikita-tkachenko-datadog commented 3 months ago

The fix has been released in the plugin v6.0.3. Please try updating and let me know if the issue persists. Thank you!

davidamir10 commented 3 months ago

@nikita-tkachenko-datadog Thanks for quick response, fix looks good.