Getting error in while running jenkins job

Hi Team,

We are getting below error while running our jenkins job.
We are deploying services using jenkins job on kubernetes and using jenkins helm chart version “4.3.22”.

PLUGIN: Git
Version5.0.0

Kubernetes
Version3900.va_dce992317b_4

Lockable Resources plugin
Version1156.v5e9f897ece02 ENABLED

Pipeline
Version596.v8c21c963d92d

Pipeline
Version596.v8c21c963d92d

ERROR:

Commit message: “Update images to use prod”
[Pipeline] Start of Pipeline
[Pipeline] properties
[Pipeline] podTemplate
[Pipeline] End of Pipeline
Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 16d1961e-dc1f-4a9b-b594-99bc7da24160
java.lang.NoSuchMethodError: org.yaml.snakeyaml.constructor.SafeConstructor: method ‘void ()’ not found
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:256)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:387)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:353)
at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:337)
at io.fabric8.kubernetes.client.dsl.internal.OperationSupport.unmarshal(OperationSupport.java:753)
at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.load(BaseOperation.java:261)
at io.fabric8.kubernetes.client.dsl.internal.BaseOperation.load(BaseOperation.java:93)
at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.parseFromYaml(PodTemplateUtils.java:610)
at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.validateYamlContainerNames(PodTemplateUtils.java:639)
at org.csanchez.jenkins.plugins.kubernetes.PodTemplateUtils.validateYamlContainerNames(PodTemplateUtils.java:629)
at org.csanchez.jenkins.plugins.kubernetes.pipeline.PodTemplateStepExecution.start(PodTemplateStepExecution.java:145)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:322)
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:196)
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:180)
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:163)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:148)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:178)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:182)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:35)
at cps.transform(Native Method)
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:90)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:116)
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:85)
at jdk.internal.reflect.GeneratedMethodAccessor266.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
at com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:46)
at com.cloudbees.groovy.cps.Next.step(Next.java:83)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:152)
at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:146)
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:146)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
at jenkins.util.ErrorLoggingExecutorService.lambda$wrap$0(ErrorLoggingExecutorService.java:51)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Finished: FAILURE

Didn’t figure out why it happened, but downgrading snakeyaml-api to version 1.x solved it for be.

1 Like

That message means that one or more of the plugins installed on your system is not compatible with SnakeYAML 2.2. SnakeYAML 2.2 contains breaking changes compared to SnakeYAML 1.33. Those breaking changes require changes in the plugins that use the SnakeYAML API plugin.

Downgrading the SnakeYAML API plugin from 2.2-111.vc6598e30cc65 to 1.33-95.va_b_a_e3e47b_fa_4 is one of the valid responses to that message. The plugin changelog says

:warning: Breaking changes

  • Users that are running Jenkins 2.387.3 (with its known vulnerabilities) and blue ocean must not update to snakeyaml 2.2 or they will introduce a stack trace into their Jenkins log.
    • The issue can be avoided by choosing to not upgrade the snakeyaml plugin to 2.2.
    • The issue can also be avoided by upgrading from Jenkins 2.387.3 to Jenkins 2.401.3 or Jenkins 2.414.1 and upgrading the blue ocean plugins. An updated blue ocean plugin (1.27.6) is available for Jenkins 2.401.3 with support for snakeyaml 2.2
  • The issue is better described at JENKINS-71966.

The Kubernetes plugin release 4007.v633279962016 has the same issue. You can resolve the issue either by upgrading the Kubernetes plugin to 4029.v5712230ccb_f8 or by not upgrading the SnakeYAML API plugin.

1 Like

Its worked thank you so much

1 Like

Not really much of a java developer, but can you give a suggestion for how to debug and find the module that is incompatible? Is it shown somewhere in the stacktrace?

I use a google search for the Javadoc of classes in the stack trace. That will usually show which plugin is involved in the stack trace.

A google search “Jenkins javadoc io.fabric8.kubernetes.client.utils.Serialization” takes me to the Javadoc page for the Jenkins kubernetes plugin. That indicates you either need to upgrade your kubernetes plugin or continue with the downgraded snakeyaml plugin. If a newer kubernetes plugin is not offered to you from the Jenkins plugin manager page, then you’ll either need to upgrade the Jenkins controller version and the kubernetes plugin or continue with the downgraded snakeyaml plugin.