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

com.google.inject.CreationException after resuming build in script {} or withMaven {}

    XMLWordPrintable

Details

    Description

      I use a build pipeline to execute several maven tasks. My pipeline code looks like this example:

      stage("checkout git") {
         // .....
      }
      
      stage("build app") {
        node {
          withMaven(maven:'Maven_3_3_9', mavenLocalRepo: '.repository',mavenSettingsConfig:'my-config') {
            sh 'mvn clean install'
        }
      }
      
      stage("deploy app") {
         node {
           withMaven(maven:'Maven_3_3_9', mavenLocalRepo: '.repository',mavenSettingsConfig:'my-config') {
             sh 'mvn deploy'
         }
      }
      

      If i use the "Safe Restart Plugin" or the "Prepare for Restart Option" and restart the Jenkins the pipeline will crash when the next maven task in the pipeline is executed and throws the following error.

      [Pipeline] {
      [Pipeline] withMaven
      [Pipeline] // withMaven
      [Pipeline] }
      [Pipeline] // node
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] End of Pipeline
      hudson.remoting.ProxyException: com.google.inject.CreationException: Guice creation errors:
      
      1) A just-in-time binding to org.jenkinsci.plugins.pipeline.maven.WithMavenStep was already configured on a parent injector.
        at org.jenkinsci.plugins.workflow.steps.ContextParameterModule.configure(ContextParameterModule.java:37)
      
      1 error
      	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:448)
      	at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
      	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
      	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
      	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:237)
      	at jenkins.ProxyInjector.createChildInjector(ProxyInjector.java:110)
      	at org.jenkinsci.plugins.workflow.steps.AbstractStepImpl.prepareInjector(AbstractStepImpl.java:43)
      	at org.jenkinsci.plugins.workflow.steps.AbstractStepImpl.start(AbstractStepImpl.java:36)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:182)
      	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126)
      	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108)
      	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:16)
      	at maven.call(/var/lib/jenkins/jobs/jndiagent-INTEGRATION/builds/27/libs/com.timocom.jenkins.pipeline/vars/maven.groovy:22)
      	at WorkflowScript.run(WorkflowScript:44)
      	at ___cps.transform___(Native Method)
      	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:48)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
      	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	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:58)
      	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
      	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30)
      	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:78)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:224)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	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:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Finished: FAILURE
      

      All the documentations say that pipeline jobs are resilient to Jenkins restarts but it seems that there is a problem with the maven enviroment created by the "withMavenStep".

      Attachments

        Issue Links

          Activity

            Code changed in jenkins
            User: Jesse Glick
            Path:
            pipeline-model-definition/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStep.java
            pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStepTest.java
            http://jenkins-ci.org/commit/pipeline-model-definition-plugin/bb3b9c27dd15eef9980aa296278a836767344bbd
            Log:
            JENKINS-39134 Avoiding Guice error by not injecting ScriptStep (which was unused anyway).

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pipeline-model-definition/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStep.java pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStepTest.java http://jenkins-ci.org/commit/pipeline-model-definition-plugin/bb3b9c27dd15eef9980aa296278a836767344bbd Log: JENKINS-39134 Avoiding Guice error by not injecting ScriptStep (which was unused anyway).

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            pipeline-model-api/src/main/resources/index.jelly
            pipeline-model-declarative-agent/src/main/resources/index.jelly
            pipeline-model-definition/pom.xml
            pipeline-model-definition/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStep.java
            pipeline-model-definition/src/main/resources/index.jelly
            pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStepTest.java
            pipeline-stage-tags-metadata/src/main/resources/index.jelly
            http://jenkins-ci.org/commit/pipeline-model-definition-plugin/e27901b50fb3896820cdb843060e5a922a4b6127
            Log:
            Merge pull request #59 from jglick/CreationException-JENKINS-39134

            JENKINS-39134 Fix CreationException when resuming inside script {}

            Compare: https://github.com/jenkinsci/pipeline-model-definition-plugin/compare/87add2604c94...e27901b50fb3

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: pipeline-model-api/src/main/resources/index.jelly pipeline-model-declarative-agent/src/main/resources/index.jelly pipeline-model-definition/pom.xml pipeline-model-definition/src/main/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStep.java pipeline-model-definition/src/main/resources/index.jelly pipeline-model-definition/src/test/java/org/jenkinsci/plugins/pipeline/modeldefinition/steps/ScriptStepTest.java pipeline-stage-tags-metadata/src/main/resources/index.jelly http://jenkins-ci.org/commit/pipeline-model-definition-plugin/e27901b50fb3896820cdb843060e5a922a4b6127 Log: Merge pull request #59 from jglick/CreationException- JENKINS-39134 JENKINS-39134 Fix CreationException when resuming inside script {} Compare: https://github.com/jenkinsci/pipeline-model-definition-plugin/compare/87add2604c94...e27901b50fb3

            Code changed in jenkins
            User: Jesse Glick
            Path:
            pom.xml
            src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepExecution.java
            src/test/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepTest.java
            http://jenkins-ci.org/commit/pipeline-maven-plugin/a2729547dc0c545043ad882e48b8de60623490db
            Log:
            JENKINS-39134 Workaround for Pipeline/Guice bug.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepExecution.java src/test/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepTest.java http://jenkins-ci.org/commit/pipeline-maven-plugin/a2729547dc0c545043ad882e48b8de60623490db Log: JENKINS-39134 Workaround for Pipeline/Guice bug.

            Code changed in jenkins
            User: Alvaro Lobato
            Path:
            pom.xml
            src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStep.java
            src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepExecution.java
            src/main/resources/index.jelly
            src/test/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepTest.java
            http://jenkins-ci.org/commit/pipeline-maven-plugin/0fbb0d2e553eae676519b496918aaf54621345a7
            Log:
            Merge pull request #11 from jglick/CreationException-JENKINS-39134

            JENKINS-39134 Work around Guice problem

            Compare: https://github.com/jenkinsci/pipeline-maven-plugin/compare/a1bd50adb05f...0fbb0d2e553e

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Alvaro Lobato Path: pom.xml src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStep.java src/main/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepExecution.java src/main/resources/index.jelly src/test/java/org/jenkinsci/plugins/pipeline/maven/WithMavenStepTest.java http://jenkins-ci.org/commit/pipeline-maven-plugin/0fbb0d2e553eae676519b496918aaf54621345a7 Log: Merge pull request #11 from jglick/CreationException- JENKINS-39134 JENKINS-39134 Work around Guice problem Compare: https://github.com/jenkinsci/pipeline-maven-plugin/compare/a1bd50adb05f...0fbb0d2e553e

            Code changed in jenkins
            User: Jesse Glick
            Path:
            src/main/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverReader.java
            http://jenkins-ci.org/commit/workflow-support-plugin/ddadc4b61b4b438946550e530f18c1b3b47cc46a
            Log:
            JENKINS-39134 Mechanism to allow tests to intercept program.dat deserialization.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: src/main/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverReader.java http://jenkins-ci.org/commit/workflow-support-plugin/ddadc4b61b4b438946550e530f18c1b3b47cc46a Log: JENKINS-39134 Mechanism to allow tests to intercept program.dat deserialization.

            People

              jglick Jesse Glick
              henok Hendrik Brinkmann
              Votes:
              3 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: