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

Plugin Kubernetes Continuous Deploy Plugin makes input command fail

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • Jenkins 2.119
      Kubernetes Continuous Deploy Plugin 0.2.1
      Pipeline: Input Step 2.8
      Ubuntu 16.04.4 LTS

      When I run a kubernetesDeploy command, then an input command, it fails. If I comment out the Kubernetes command then the input command will succeed - and if I comment out the input command, the Kubernetes command succeeds. (THAT made this hard to figure out what was happening!)

      I replicated the issue using the following Jenkinsfile:

      #!/usr/bin/env groovy

      node {
         stage('Deploy') {
            kubernetesDeploy(
               kubeconfigId: "staging-credentials",
               configs: "config.yaml",
               dockerCredentials: [[credentialsId: 'credentialId']])

            input "ask something"
            }
      }

      Input was originally in a different stage. And again, the input and the kubernetesDeploy command will work by themselves - but running them together will fail.

      This is the error:
      java.lang.UnsupportedOperationException: Refusing to marshal com.microsoft.jenkins.azurecommons.core.EnvironmentInjector$EnvironmentInjectionAction for security reasons; see https://jenkins.io/redirect/class-filter/
      at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:543)
      at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
      at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
      at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
      at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
      at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
      at com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74)
      at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
      at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
      at com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
      at hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:265)
      at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:252)
      Caused: java.lang.RuntimeException: Failed to serialize hudson.model.Actionable#actions for class org.jenkinsci.plugins.workflow.job.WorkflowRun
      at hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:256)
      at hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:224)
      at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)
      at hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)
      at hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)
      at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)
      at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)
      at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)
      at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)
      at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
      at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026)
      at com.thoughtworks.xstream.XStream.marshal(XStream.java:1015)
      at com.thoughtworks.xstream.XStream.toXML(XStream.java:988)
      at hudson.XmlFile.write(XmlFile.java:193)
      at org.jenkinsci.plugins.workflow.support.PipelineIOUtils.writeByXStream(PipelineIOUtils.java:30)
      at org.jenkinsci.plugins.workflow.job.WorkflowRun.save(WorkflowRun.java:1256)
      at org.jenkinsci.plugins.workflow.support.steps.input.InputAction.add(InputAction.java:130)
      at org.jenkinsci.plugins.workflow.support.steps.input.InputStepExecution.start(InputStepExecution.java:70)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:229)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153)
      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
      at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
      at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157)
      at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
      at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:133)
      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:129)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:129)
      at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
      Caused: java.io.IOException
      at hudson.XmlFile.write(XmlFile.java:200)
      at org.jenkinsci.plugins.workflow.support.PipelineIOUtils.writeByXStream(PipelineIOUtils.java:30)
      at org.jenkinsci.plugins.workflow.job.WorkflowRun.save(WorkflowRun.java:1256)
      at org.jenkinsci.plugins.workflow.support.steps.input.InputAction.add(InputAction.java:130)
      at org.jenkinsci.plugins.workflow.support.steps.input.InputStepExecution.start(InputStepExecution.java:70)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:229)
      at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153)
      at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
      at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
      at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157)
      at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
      at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:133)
      at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:129)
      at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:129)
      at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
      at WorkflowScript.run(WorkflowScript:11)
      at __cps.transform__(Native Method)
      at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
      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.GeneratedMethodAccessor283.invoke(Unknown Source)
      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.ConstantBlock.eval(ConstantBlock.java:21)
      at com.cloudbees.groovy.cps.Next.step(Next.java:83)
      at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
      at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
      at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122)
      at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261)
      at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
      at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34)
      at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59)
      at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108)
      at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58)
      at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232)
      at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
      at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
      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)
      Finished: FAILURE

          [JENKINS-51147] Plugin Kubernetes Continuous Deploy Plugin makes input command fail

          Evan Reynolds added a comment -

          One note from more testing - I am running the kubernetesDeploy step twice in my full Jenkinsfile, once to staging and then maybe to production. The staging one works. I tried moving the input to before both of them, and THAT worked too.

          I just can't run the kubernetesDeploy step before the Input step!

          Evan Reynolds added a comment - One note from more testing - I am running the kubernetesDeploy step twice in my full Jenkinsfile, once to staging and then maybe to production. The staging one works. I tried moving the input to before both of them, and THAT worked too. I just can't run the kubernetesDeploy step before the Input step!

          Menghua Xiao added a comment -

          This is related to JEP-200. The environment variables are injected via an action which will be serialized in the case you mention, however, the action is not white listed so an exception was thrown.

          Fixing in progress.

          Menghua Xiao added a comment - This is related to JEP-200 . The environment variables are injected via an action which will be serialized in the case you mention, however, the action is not white listed so an exception was thrown. Fixing in progress.

          Code changed in jenkins
          User: Menghua Xiao
          Path:
          azure-commons-core/pom.xml
          azure-commons-plugin/src/main/resources/META-INF/hudson.remoting.ClassFilter
          http://jenkins-ci.org/commit/azure-commons-plugin/fcba4bce9dbb0bcd52930e9cbe31cb2e9a77f7cd
          Log:
          Whitelist classes for JEP-200 XStream serialization (JENKINS-51147) (#24)

          *NOTE:* This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

          Functionality will be removed from GitHub.com on January 31st, 2019.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Menghua Xiao Path: azure-commons-core/pom.xml azure-commons-plugin/src/main/resources/META-INF/hudson.remoting.ClassFilter http://jenkins-ci.org/commit/azure-commons-plugin/fcba4bce9dbb0bcd52930e9cbe31cb2e9a77f7cd Log: Whitelist classes for JEP-200 XStream serialization ( JENKINS-51147 ) (#24) * NOTE: * This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.

          Code changed in jenkins
          User: Menghua Xiao
          Path:
          pom.xml
          http://jenkins-ci.org/commit/kubernetes-cd-plugin/8a2eedc8c8a1b3efe2a8f690c3690d32f138e953
          Log:
          Update azure-commons version to pick up XStream whitelist (JENKINS-51147)

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Menghua Xiao Path: pom.xml http://jenkins-ci.org/commit/kubernetes-cd-plugin/8a2eedc8c8a1b3efe2a8f690c3690d32f138e953 Log: Update azure-commons version to pick up XStream whitelist ( JENKINS-51147 )

          Code changed in jenkins
          User: Menghua Xiao
          Path:
          pom.xml
          http://jenkins-ci.org/commit/kubernetes-cd-plugin/64b145d0d5403e1ad7ddcfe833569c993ded8672
          Log:
          Merge pull request #37 from ArieShout/jep200

          Update azure-commons version to pick up XStream whitelist (JENKINS-51147)

          Compare: https://github.com/jenkinsci/kubernetes-cd-plugin/compare/29f90c623843...64b145d0d540
          *NOTE:* This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

          Functionality will be removed from GitHub.com on January 31st, 2019.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Menghua Xiao Path: pom.xml http://jenkins-ci.org/commit/kubernetes-cd-plugin/64b145d0d5403e1ad7ddcfe833569c993ded8672 Log: Merge pull request #37 from ArieShout/jep200 Update azure-commons version to pick up XStream whitelist ( JENKINS-51147 ) Compare: https://github.com/jenkinsci/kubernetes-cd-plugin/compare/29f90c623843...64b145d0d540 * NOTE: * This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.

          Menghua Xiao added a comment -

          Fixed in version 0.2.2

          Menghua Xiao added a comment - Fixed in version 0.2.2

            azure_devops Azure DevOps
            evanthx Evan Reynolds
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: