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

UnsupportedOperationException - Refusing to marshal org.codehaus.groovy.runtime.GStringImpl

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • artifactory-plugin
    • Jenkins v2.46.3
      Artifactory Plugin v2.11.0
      Pipeline v2.5
      Pipeline API v2.17
      Jenkins Master: Ubuntu 16.04.2 LTS

      After calling maven.run in the Artifactory Plugin, following Stack Trace appears.

      Since i didnt found any, Artifactory calls in the Stacktrace, my idea was that this could be a general Jenkins Problem, or my Pipeline script is broken. Either way, there should be a better Error Description.

      Pipeline:

      class MyArtifactory implements Serializable{
      
          def server
          def buildInfo
          def maven
      
          MyArtifactory(artifactory){
              this.server = artifactory.server('Artifactory')
              this.buildInfo = artifactory.newBuildInfo()
              this.maven = artifactory.newMavenBuild()
              
              this.maven.tool = 'Maven'
              this.maven.resolver server: server, releaseRepo: 'libs-release',       snapshotRepo: 'libs-snapshot'
              this.maven.deployer server: server, releaseRepo: 'libs-release-local', snapshotRepo: 'libs-snapshot-local', evenIfUnstable: false
          }
      
          def runMaven(inGoals, inOptions=""){
              this.maven.opts = inOptions
              this.maven.run pom: 'pom.xml', goals: inGoals, buildInfo: this.buildInfo
          }
      
          def publishBuildInfo(){
              this.server.publishBuildInfo this.buildInfo
          }
      }
      
      
      node('master'){
      
          def artifactory = new MyArtifactory(Artifactory);
          stage("Pack Artifact"){
              stash name: "ServerDeploy", excludes:"ci/**", includes: "Server.jar,SampleData.xml,*.bat,Configuration/**,Interfaces/**"
              artifactory.runMaven('install', '-Dfile=target/ServerDeploy.zip');
          }
      
      }
      

      Stacktrace:

      java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons
      at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:445)
      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.MapConverter.marshal(MapConverter.java:79)
      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 groovy.lang.Binding#variables for class groovy.lang.Binding
      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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
      at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:250)
      at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:226)
      at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.<init>(AbstractReflectionConverter.java:189)
      at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:135)
      at com.thoughtworks.xstream.converters.reflection.SerializableConverter.marshalUnserializableParent(SerializableConverter.java:292)
      at com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:246)
      at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:83)
      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 org.jfrog.hudson.pipeline.types.MavenBuild#cpsScript for class org.jfrog.hudson.pipeline.types.MavenBuild
      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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
      at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
      at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:79)
      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 org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl#arguments for class org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl
      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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
      at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
      at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
      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 org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag#actions for class org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag
      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:170)
      at org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage.saveActions(SimpleXStreamFlowNodeStorage.java:111)
      at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$TimingFlowNodeStorage.saveActions(CpsFlowExecution.java:1491)
      at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1012)
      at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:380)
      at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:386)
      at org.jenkinsci.plugins.workflow.graph.FlowNode.access$100(FlowNode.java:61)
      at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:346)
      at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:336)
      at java.util.AbstractList.add(AbstractList.java:108)
      at hudson.model.Actionable.addAction(Actionable.java:152)
      at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:910)
      at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1221)
      at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:407)
      at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
      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:748)
      

          [JENKINS-44873] UnsupportedOperationException - Refusing to marshal org.codehaus.groovy.runtime.GStringImpl

          Jenkins 2.65 here and I have the same problem.

          Sylvain Le Gall added a comment - Jenkins 2.65 here and I have the same problem.

          I assume you are running this code snippet through a Pipeline job. Does these examples work for you?

          https://github.com/JFrogDev/project-examples/tree/master/jenkins-pipeline-examples

          I'm asking so that we can understand what section of your code causes this exception.

          Eyal Ben Moshe added a comment - I assume you are running this code snippet through a Pipeline job. Does these examples work for you? https://github.com/JFrogDev/project-examples/tree/master/jenkins-pipeline-examples I'm asking so that we can understand what section of your code causes this exception.

          Sylvain Le Gall added a comment - - edited

          In my case:

          • I use this in a Pipeline job
          • I use a generic repository
          • The upload method works correctly

          If I comment the "download" method, everything works.

           

          My own snippet:

           

          def artifactory = Artifactory.server(artifactoryId)
          def buildInfo = Artifactory.newBuildInfo()
          buildInfo.retention maxBuilds: 10, deleteBuildArtifacts: true
          stage('local-dependencies')
             // TODO: re-enable when https://issues.jenkins-ci.org/browse/JENKINS-44873 is solved
              downloadSpec = """{
              "file": [
               {
                 "pattern": "${artifactoryRepo}/github.com/gildor478/user/user-latest.zip",
                 "target": "user-latest.zip",
               }
              ]
              }"""
              artifactoryDownload spec:downloadSpec, server: artifactory // This one fails.
          }
          stage('archive') {
              dir("src/${pkg}") {
                sh "git archive -o ${localZip} --prefix=${pkg}/ HEAD"
                sh "cp ${localZip} ${localLatestZip}"
                def uploadSpec = """{
                  "files": [
                     {
                       "pattern": "${localZip}",
                       "target": "${artifactoryRepo}/${remoteDir}"
                     },
                     {
                       "pattern": "${localLatestZip}",}}
                       "target": "${artifactoryRepo}/${remoteDir}"??
                     },
                     {
                       "pattern": "junit-report.xml",
                       "target": "${artifactoryRepo}/${remoteDir}/junit-report-${version}.xml"
                     }
                    ]
                    }"""
                    artifactory.upload(uploadSpec, buildInfo)
                    artifactory.publishBuildInfo(buildInfo)
                  }
                }
             }
          

           

           

          Sylvain Le Gall added a comment - - edited In my case: I use this in a Pipeline job I use a generic repository The upload method works correctly If I comment the "download" method, everything works.   My own snippet:   def artifactory = Artifactory.server(artifactoryId) def buildInfo = Artifactory.newBuildInfo() buildInfo.retention maxBuilds: 10, deleteBuildArtifacts: true stage( 'local-dependencies' )   // TODO: re-enable when https://issues.jenkins-ci.org/browse/JENKINS-44873 is solved    downloadSpec = """{     "file" : [     {     "pattern" : "${artifactoryRepo}/github.com/gildor478/user/user-latest.zip" ,     "target" : "user-latest.zip" ,     }    ]    }"""    artifactoryDownload spec:downloadSpec, server: artifactory // This one fails. } stage( 'archive' ) {    dir( "src/${pkg}" ) {      sh "git archive -o ${localZip} --prefix=${pkg}/ HEAD"      sh "cp ${localZip} ${localLatestZip}"      def uploadSpec = """{         "files" : [           {             "pattern" : "${localZip}" ,             "target" : "${artifactoryRepo}/${remoteDir}"           },           {             "pattern" : "${localLatestZip}" ,}}           "target" : "${artifactoryRepo}/${remoteDir}" ??           },           {             "pattern" : "junit-report.xml" ,             "target" : "${artifactoryRepo}/${remoteDir}/junit-report-${version}.xml"           }          ]          }"""          artifactory.upload(uploadSpec, buildInfo)          artifactory.publishBuildInfo(buildInfo) } }   }    

          Hey eyalbe,

          I tested the examples, the worked.
          In my case, i moved the MyArtifactory Class to a pipeline library.

          I`ll check the examples again, in the next few days, with executing them in a pipeline lib.

          Simon Schneider added a comment - Hey eyalbe , I tested the examples, the worked. In my case, i moved the MyArtifactory Class to a pipeline library. I`ll check the examples again, in the next few days, with executing them in a pipeline lib.

          Jesse Glick added a comment -

          Sounds like you installed some plugins from the experimental update center with known bugs, then neglected to update them to release versions.

          Jesse Glick added a comment - Sounds like you installed some plugins from the experimental update center with known bugs, then neglected to update them to release versions.

          I suddenly started experiencing this problem too;

          [Pipeline] getArtifactoryServer

          [Pipeline] newBuildInfo

          [Pipeline] End of Pipeline

          java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons

          at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452)

          at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)

          at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)

          ...

          Everything was working fine until we updated the git plugin, which seemed to update various other things. Now we see this error. This is some sort of regression which has completely crippled our automations.

           

          I even installed a fresh lts jenkins master (2.60.1) chose the recommended list of plugins and only installed the artifactory plug in on top of that and am seeing the same problem. Please fix ASAP.

           

           

          yacoub hossain added a comment - I suddenly started experiencing this problem too; [Pipeline] getArtifactoryServer [Pipeline] newBuildInfo [Pipeline] End of Pipeline java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452) at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) ... Everything was working fine until we updated the git plugin, which seemed to update various other things. Now we see this error. This is some sort of regression which has completely crippled our automations.   I even installed a fresh lts jenkins master (2.60.1) chose the recommended list of plugins and only installed the artifactory plug in on top of that and am seeing the same problem. Please fix ASAP.    

          eyalbe, interestingly if i isolate and run each of the individual stages of my script they work fine, only when trying to the entire script does it fail, seemingly during artifactory upload stage, although it's complaining about serialization stuff. Can you give me some sort of work-around to get my automations back up and running?

          yacoub hossain added a comment - eyalbe , interestingly if i isolate and run each of the individual stages of my script they work fine, only when trying to the entire script does it fail, seemingly during artifactory upload stage, although it's complaining about serialization stuff. Can you give me some sort of work-around to get my automations back up and running?

          Ajay Singh added a comment -

          eyalbe, jglick

          I am experiencing same behaviour as mentioned by Yacoub.

          Just to ensure that I don't have any badplug-ins, I setup a new jenkins and all the recommended (latest stable) plug-ins but it is still giving below exception during Artifactory upload.

          java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons
          at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452)
          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(A
           

          Ajay Singh added a comment - eyalbe , jglick I am experiencing same behaviour as mentioned by Yacoub. Just to ensure that I don't have any badplug-ins, I setup a new jenkins and all the recommended (latest stable) plug-ins but it is still giving below exception during Artifactory upload. java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452) 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(A  

          I really don't think that I have a bad plugin installed. I don't even know that I can use experimental plugins.

           

          I still have the problem and I think other people are reporting the problem too. 

          Sylvain Le Gall added a comment - I really don't think that I have a bad plugin installed. I don't even know that I can use experimental plugins.   I still have the problem and I think other people are reporting the problem too. 

          Since the issue does not reproduce for us, can you please help us pinpoint the issue by creating the simplest possible Pipeline example that reproduces this exception?

          Also, does downgrading the Artifactory Plugin to version 2.10 resolves the issue? We'd like to know if the change that caused comes with the Artifactory Plugin or a different plugin.

          Eyal Ben Moshe added a comment - Since the issue does not reproduce for us, can you please help us pinpoint the issue by creating the simplest possible Pipeline example that reproduces this exception? Also, does downgrading the Artifactory Plugin to version 2.10 resolves the issue? We'd like to know if the change that caused comes with the Artifactory Plugin or a different plugin.

          eyalb , I will upload an example later today, it may be my entire script though, strangely, trying to isolate the problem, makes the bug dissappear.
          Also when I first noticed the issue my artifactory plug in was at version 2.10. Later tried version 2.11, but it didnt help. I think what seemed to trigger it for me was when I updated the git plugin, but im so confused now im not sure about anything else changed.

          yacoub hossain added a comment - eyalb , I will upload an example later today, it may be my entire script though, strangely, trying to isolate the problem, makes the bug dissappear. Also when I first noticed the issue my artifactory plug in was at version 2.10. Later tried version 2.11, but it didnt help. I think what seemed to trigger it for me was when I updated the git plugin, but im so confused now im not sure about anything else changed.

          Managed to cut it down this time, here is my snippet;

           

          #!groovy
          def stagingRepo = "team-mpg-components-nuget/"
          def localRepoPath=""
          def rfminmDest = "\\\\beaver.autodesk.com\\ENGOPS_BUILDS\\Inventor\\3rdParties
          ASM_Full"
          pipeline {
              agent {
                  label configuration.take(1)
              }
              stages {
                  stage("Download nupkgen tool") {
                      steps {
                          script {
                              dir('./restricted') {
                                  //Download the nupkgen.exe into the current directory
                                  server = Artifactory.server 'ART'
                                  def downloadSpec =
                                          """{
                                      "files":
                                      [
                                          {
                                              "pattern": "team-mpg-components-nuget/yacz-files/tools/",
                                              "target" : "{1}",
                                              "flat" : "true"
                                          }
                                      ]
                                  }"""
                                  server.download(downloadSpec)
                              }
                          }
                      }
                  }
                  
                  stage("Archive ASM Artifacts") {
                      steps {
                          script {
                              //set staging subdir name
                              stagingSubDir = "asm/$label"
                              dir('./restricted') {
                                  server = Artifactory.server 'ART'
                                  //def buildInfo = Artifactory.newBuildInfo()
                                  //buildInfo.env.capture = true
                                  def uploadSpec = """{
                                      "files": [
                                          {
                                            "pattern": "(*.nupkg)",
                                            "target": "$stagingRepo$stagingSubDir/{1}"
                                          }
                                       ]
                                      }"""
                                  server.upload(uploadSpec)
                              }
                          }
                      }
                  }
              }
          }

           

          server.upload(uploadSpec) seems to be where it trips up.

          yacoub hossain added a comment - Managed to cut it down this time, here is my snippet;   #!groovy def stagingRepo = "team-mpg-components-nuget/" def localRepoPath="" def rfminmDest = "\\\\beaver.autodesk.com\\ENGOPS_BUILDS\\Inventor\\3rdParties ASM_Full" pipeline {     agent {         label configuration.take(1)     }     stages {         stage("Download nupkgen tool") {             steps {                 script {                     dir('./restricted') {                         //Download the nupkgen.exe into the current directory                         server = Artifactory.server 'ART'                         def downloadSpec =                                 """{                             "files":                             [                                 {                                     "pattern": "team-mpg-components-nuget/yacz-files/tools/ ",                                     "target" : "{1}",                                     "flat" : "true"                                 }                             ]                         }"""                         server.download(downloadSpec)                     }                 }             }         }                  stage("Archive ASM Artifacts") {             steps {                 script {                     //set staging subdir name                     stagingSubDir = "asm/$label"                     dir('./restricted') {                         server = Artifactory.server 'ART'                         //def buildInfo = Artifactory.newBuildInfo()                         //buildInfo.env.capture = true                         def uploadSpec = """{                             "files": [                                 {                                   "pattern": "(*.nupkg)",                                   "target": "$stagingRepo$stagingSubDir/{1}"                                 }                              ]                             }"""                         server.upload(uploadSpec)                     }                 }             }         }     } }   server.upload(uploadSpec) seems to be where it trips up.

          hossaiy - thank you for this.

          I managed to reproduce the issue using your example (after installing the "Pipeline Model Definition Plugin"). I could only reproduce this exception using Declarative Pipeline (https://jenkins.io/blog/2016/12/19/declarative-pipeline-beta/).

          That's probably why we couldn't reproduce this issue using the Artifactory Pipeline Examples (which use Scripted Pipeline). We've actually never tested the Artifactory API with Declarative Pipeline.

          jglick, can you please help us with this? What do we need to change/add to the code to support this?

          The code of the upload and download methods is in the: org.jfrog.hudson.pipeline.types.ArtifactoryServer class, in the Artifactory Plugin code base:

          https://github.com/JFrogDev/jenkins-artifactory-plugin

          Eyal Ben Moshe added a comment - hossaiy - thank you for this. I managed to reproduce the issue using your example (after installing the "Pipeline Model Definition Plugin"). I could only reproduce this exception using Declarative Pipeline ( https://jenkins.io/blog/2016/12/19/declarative-pipeline-beta/). That's probably why we couldn't reproduce this issue using the Artifactory Pipeline Examples (which use Scripted Pipeline). We've actually never tested the Artifactory API with Declarative Pipeline. jglick , can you please help us with this? What do we need to change/add to the code to support this? The code of the upload and download methods is in the: org.jfrog.hudson.pipeline.types.ArtifactoryServer class, in the Artifactory Plugin code base: https://github.com/JFrogDev/jenkins-artifactory-plugin

          Max Kovgan added a comment - - edited

          eyalbe, I understand you believe the issue is coming up only with "Declarative Pipeline". I am experiencing this problem in "Scripted Pipeline", I have Pipeline Model Definition plugin installed too.

          The file being uploaded is pretty big. not as fat VM image big, but it's ~ 4.2GB big.

          This is the code:

          // shortens each stage. shows how to use closures
          def toggleable_stage(def name, Closure body) {
              stage(name) {
                  boolean stage_run = true
                  if (params.containsKey(name)) {
                      stage_run = params."${name}"
                  }
                  if (stage_run) {
                      echo "executing: ${name}"
                      body()
                  } else {
                      echo "skipping: ${name}"
                  }
              }
          }
          
          node() {
          wrappers() {
                         toggleable_stage 'DEPLOY', {
                              echo "Creating uploadSpecDataFiles"
                              def uploadSpecDataFiles = [
                                  [
                                      pattern: "${targetDir}/${installerName}",
                                      target : "deployment-install-media/${VERSION}/"
                                  ] as HashMap,
                                  [
                                      pattern: "${targetDir}/${installerName}.${checkSum}",
                                      target : "deployment-install-media/${VERSION}/"
                                  ] as HashMap,
                              ] as ArrayList
          
                              def uploadSpecData = [:]
                              uploadSpecData << [
                                  files: uploadSpecDataFiles
                              ] as HashMap
                              echo "Converting uploadSpecData to JSON"
                              def uploadSpec = toJSON(uploadSpecData)
                              def artifactoryData = [:]
                              artifactoryData << [
                                  url          : ARTIFACTORY.url,
                                  credentialsId: credentials.rt
                              ]
                              echo "Setting up artifactory service instance"
                              def artifactoryServer = Artifactory.newServer(artifactoryData)
                              def buildInfo = artifactoryServer.upload(uploadSpec)
                              echo "Publishing build info in artifactory"
                              artifactoryServer.publishBuildInfo(buildInfo)
                          }
              }
              //
              }
          }
          

           
          Here comes the log again:

          13:07:11 Setting up artifactory service instance
          [Pipeline] newArtifactoryServer
          [Pipeline] End of Pipeline
          java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons
          	at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452)
          	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.MapConverter.marshal(MapConverter.java:79)
          	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.MapConverter.marshal(MapConverter.java:79)
          	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.MapConverter.marshal(MapConverter.java:79)
          	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 groovy.lang.Binding#variables for class groovy.lang.Binding
          	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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)
          	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:250)
          	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:226)
          	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.<init>(AbstractReflectionConverter.java:189)
          	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:135)
          	at com.thoughtworks.xstream.converters.reflection.SerializableConverter.marshalUnserializableParent(SerializableConverter.java:292)
          	at com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:246)
          	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:83)
          	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 org.jfrog.hudson.pipeline.types.ArtifactoryServer#cpsScript for class org.jfrog.hudson.pipeline.types.ArtifactoryServer
          	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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
          	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
          	at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:79)
          	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 org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl#arguments for class org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl
          	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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)
          	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)
          	at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45)
          	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 org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag#actions for class org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag
          	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:171)
          	at org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage.saveActions(SimpleXStreamFlowNodeStorage.java:111)
          	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$TimingFlowNodeStorage.saveActions(CpsFlowExecution.java:1491)
          	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1012)
          	at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:380)
          	at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:386)
          	at org.jenkinsci.plugins.workflow.graph.FlowNode.access$100(FlowNode.java:61)
          	at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:346)
          	at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:336)
          	at java.util.AbstractList.add(AbstractList.java:108)
          	at hudson.model.Actionable.addAction(Actionable.java:152)
          	at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:962)
          	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1221)
          	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:407)
          	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
          	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:748)
          Finished: FAILURE
          Page generated: Jun 25, 2017 10:05:23 PM IDTREST APIJenkins ver. 2.60.1
          

          Max Kovgan added a comment - - edited eyalbe , I understand you believe the issue is coming up only with "Declarative Pipeline". I am experiencing this problem in "Scripted Pipeline", I have Pipeline Model Definition plugin installed too. The file being uploaded is pretty big. not as fat VM image big, but it's ~ 4.2GB big. This is the code: // shortens each stage. shows how to use closures def toggleable_stage(def name, Closure body) { stage(name) { boolean stage_run = true if (params.containsKey(name)) { stage_run = params. "${name}" } if (stage_run) { echo "executing: ${name}" body() } else { echo "skipping: ${name}" } } } node() { wrappers() { toggleable_stage 'DEPLOY' , { echo "Creating uploadSpecDataFiles" def uploadSpecDataFiles = [ [ pattern: "${targetDir}/${installerName}" , target : "deployment-install-media/${VERSION}/" ] as HashMap, [ pattern: "${targetDir}/${installerName}.${checkSum}" , target : "deployment-install-media/${VERSION}/" ] as HashMap, ] as ArrayList def uploadSpecData = [:] uploadSpecData << [ files: uploadSpecDataFiles ] as HashMap echo "Converting uploadSpecData to JSON" def uploadSpec = toJSON(uploadSpecData) def artifactoryData = [:] artifactoryData << [ url : ARTIFACTORY.url, credentialsId: credentials.rt ] echo "Setting up artifactory service instance" def artifactoryServer = Artifactory.newServer(artifactoryData) def buildInfo = artifactoryServer.upload(uploadSpec) echo "Publishing build info in artifactory" artifactoryServer.publishBuildInfo(buildInfo) } } // } }   Here comes the log again: 13:07:11 Setting up artifactory service instance [Pipeline] newArtifactoryServer [Pipeline] End of Pipeline java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.GStringImpl for security reasons at hudson.util.XStream2$BlacklistedTypesConverter.marshal(XStream2.java:452) 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.MapConverter.marshal(MapConverter.java:79) 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.MapConverter.marshal(MapConverter.java:79) 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.MapConverter.marshal(MapConverter.java:79) 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 groovy.lang.Binding#variables for class groovy.lang.Binding 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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshallField(AbstractReflectionConverter.java:250) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.writeField(AbstractReflectionConverter.java:226) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$2.<init>(AbstractReflectionConverter.java:189) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:135) at com.thoughtworks.xstream.converters.reflection.SerializableConverter.marshalUnserializableParent(SerializableConverter.java:292) at com.thoughtworks.xstream.converters.reflection.SerializableConverter.doMarshal(SerializableConverter.java:246) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:83) 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 org.jfrog.hudson.pipeline.types.ArtifactoryServer#cpsScript for class org.jfrog.hudson.pipeline.types.ArtifactoryServer 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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64) at com.thoughtworks.xstream.converters.collections.MapConverter.marshal(MapConverter.java:79) 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 org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl#arguments for class org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl 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.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64) at com.thoughtworks.xstream.converters.collections.ArrayConverter.marshal(ArrayConverter.java:45) 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 org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag#actions for class org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage$Tag 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:171) at org.jenkinsci.plugins.workflow.support.storage.SimpleXStreamFlowNodeStorage.saveActions(SimpleXStreamFlowNodeStorage.java:111) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$TimingFlowNodeStorage.saveActions(CpsFlowExecution.java:1491) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1012) at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:380) at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:386) at org.jenkinsci.plugins.workflow.graph.FlowNode.access$100(FlowNode.java:61) at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:346) at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:336) at java.util.AbstractList.add(AbstractList.java:108) at hudson.model.Actionable.addAction(Actionable.java:152) at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:962) at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1221) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:407) at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35) 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:748) Finished: FAILURE Page generated: Jun 25, 2017 10:05:23 PM IDTREST APIJenkins ver. 2.60.1

          eyalbe, jglick , thought i'd try my luck and ask if you happen to have a work-around? I really want to avoid doing any manual work :'( 

          yacoub hossain added a comment - eyalbe , jglick , thought i'd try my luck and ask if you happen to have a work-around? I really want to avoid doing any manual work :'( 

          Eyal Ben Moshe added a comment - - edited

          I may have found the root cause of the issue.

          It could be that in a specific version of the plugin that includes the code of the 

          org.jenkinsci.plugins.workflow.cps.CpsScript class, it is no longer possible to serialize the CpsScript class. I'm not 100% sure about this, but that could explain why it the issue affects some of us, while for others (me ) everything works.

          As I previously mentioned, I did manage to reproduce the issue with the Pipeline Model Definition Plugin. After modifying the code in the ArtifactoryServer class (mentioned above), so that the CpsScript member is declared as transient, the issue was resolved.

          I published a snapshot version with a fix, and I'd sure appreciate your feedback for it.

          You can find the the download link in my comment at the following JIRA issue:

          https://www.jfrog.com/jira/browse/HAP-935

           

          Eyal Ben Moshe added a comment - - edited I may have found the root cause of the issue. It could be that in a specific version of the plugin that includes the code of the  org.jenkinsci.plugins.workflow.cps.CpsScript class, it is no longer possible to serialize the CpsScript class. I'm not 100% sure about this, but that could explain why it the issue affects some of us, while for others (me ) everything works. As I previously mentioned, I did manage to reproduce the issue with the Pipeline Model Definition Plugin. After modifying the code in the ArtifactoryServer class (mentioned above), so that the CpsScript member is declared as transient, the issue was resolved. I published a snapshot version with a fix, and I'd sure appreciate your feedback for it. You can find the the download link in my comment at the following JIRA issue: https://www.jfrog.com/jira/browse/HAP-935  

          Ajay Singh added a comment - - edited

          eyalbe,

          I tried the snapshot version and it seems to have fixed my builds. 

          I hope it works for others as well.

          Ajay Singh added a comment - - edited eyalbe , I tried the snapshot version and it seems to have fixed my builds.  I hope it works for others as well.

          Cool!, I will try out as soon as I get to a keyboard in a few hours

          yacoub hossain added a comment - Cool!, I will try out as soon as I get to a keyboard in a few hours

          eyalbe, Thank you!!! This has fixed my automations, much appreciated

          yacoub hossain added a comment - eyalbe , Thank you!!! This has fixed my automations, much appreciated

          Fixed for me too.

          Sylvain Le Gall added a comment - Fixed for me too.

          Razvan Botez added a comment -

          While the snapshot version works, when should we expect to see this fix included in a public version?

          Razvan Botez added a comment - While the snapshot version works, when should we expect to see this fix included in a public version?

          Version 2.12.0 of the Artifactory Plugin will include this fix. We expect it to be released within a few days.

          Eyal Ben Moshe added a comment - Version 2.12.0 of the Artifactory Plugin will include this fix. We expect it to be released within a few days.

          Jesse Glick added a comment -

          Jesse Glick added a comment - e7442b8

          Jesse Glick added a comment -

          I do not believe that fix is correct. @abayer ping

          Jesse Glick added a comment - I do not believe that fix is correct. @abayer ping

          Jesse Glick added a comment -

          In general the need to use script blocks to use this plugin is an indication that the decision to create a custom DSL was misguided. Much safer to stick to plain old steps. In the above examples most of the Pipeline is not in fact Declarative so it would be better to just make it all scripted.

          I suspect the problem has something to do with the apparent use of Script.binding (“global”) variables to store DSL objects, which is perhaps something Declarative should forbid, if it can.

          Jesse Glick added a comment - In general the need to use script blocks to use this plugin is an indication that the decision to create a custom DSL was misguided. Much safer to stick to plain old steps. In the above examples most of the Pipeline is not in fact Declarative so it would be better to just make it all scripted. I suspect the problem has something to do with the apparent use of Script.binding (“global”) variables to store DSL objects, which is perhaps something Declarative should forbid, if it can.

          Andrew Bayer added a comment -

          jglick Actually, most of the examples here aren't Declarative - looks like a more general problem?

          Andrew Bayer added a comment - jglick Actually, most of the examples here aren't Declarative - looks like a more general problem?

          Jesse Glick added a comment -

          abayer well the early examples may have been JENKINS-43934, a bug in an alpha release of a plugin since fixed. So only pay attention to bugs which are still reproducible.

          Jesse Glick added a comment - abayer well the early examples may have been  JENKINS-43934 , a bug in an alpha release of a plugin since fixed. So only pay attention to bugs which are still reproducible.

          Update: version 2.12.0 of the Artifactory Plugin has been released.

          It includes the changes added to the snapshot version previously published.

          Eyal Ben Moshe added a comment - Update: version 2.12.0 of the Artifactory Plugin has been released. It includes the changes added to the snapshot version previously published.

          Andrew Bayer added a comment -

          I'm removing pipeline-model-definition from the components - Declarative is more strict about serializability than Scripted is, but that's not a bug, that's just life. =)

          Andrew Bayer added a comment - I'm removing pipeline-model-definition from the components - Declarative is more strict about serializability than Scripted is, but that's not a bug, that's just life. =)

          Jesse Glick added a comment -

          abayer well it is not actually clear to me where the bug lies, and I suspected that it was really in pipeline-model-definition, since I did not see anything wrong in what artifactory was doing offhand.

          Jesse Glick added a comment - abayer well it is not actually clear to me where the bug lies, and I suspected that it was really in pipeline-model-definition , since I did not see anything wrong in what artifactory was doing offhand.

          Ronnie Zhou added a comment -

          saw the same stacktrae in zd-57759 and https://support.cloudbees.com/hc/en-us/articles/234805187-SECURITY-360-Advisory fixed it.

          Ronnie Zhou added a comment - saw the same stacktrae in zd-57759 and https://support.cloudbees.com/hc/en-us/articles/234805187-SECURITY-360-Advisory  fixed it.

          Jesse Glick added a comment -

          I still suspect that pipeline-model-definition is involved here somehow, given the fact that the recent report involved the conjunction of a library with Declarative. (Not done in the normal way with a Declarative library section, but using Groovy code outside the pipeline block, which I suspect should be treated as a syntax error abayer?)

          Jesse Glick added a comment - I still suspect that pipeline-model-definition is involved here somehow, given the fact that the recent report  involved the conjunction of a library with Declarative. (Not done in the normal way with a Declarative library section, but using Groovy code outside the pipeline block, which I suspect should be treated as a syntax error abayer ?)

          Andrew Bayer added a comment -

          I want to reject anything outside of pipeline as a syntax error, but that'll break a bunch of existing Pipelines, so things get wonkier. But that specific report is definitely a case of Declarative serializing the steps block (deliberately and correctly) but the library object throws things off due to containing a GString. I honestly don't know off the top of my head what the right behavior on Declarative's side here would be - need to think on it.

          Andrew Bayer added a comment - I want to reject anything outside of pipeline as a syntax error, but that'll break a bunch of existing Pipelines, so things get wonkier. But that specific report is definitely a case of Declarative serializing the steps block (deliberately and correctly) but the library object throws things off due to containing a GString . I honestly don't know off the top of my head what the right behavior on Declarative's side here would be - need to think on it.

            eyalbe Eyal Ben Moshe
            raynig Simon Schneider
            Votes:
            4 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated: