We have workaround the issue by using a semaphore to call the GCP storage 
step


import groovy.transform.Field
@Field def lock = false

@NonCPS
def setLock(){
  synchronized(lock) {
    lock = true
  }
}

@NonCPS
def setUnlock(){
  synchronized(lock) {
    lock = false
  }
}

@NonCPS
def isLock(){
  synchronized(lock) {
    return lock
  }
}

def waitForUnlock(){
  while(isLock()){
    sleep 10
  }
}

def uploadPackages(bucketUri, baseDir){
  waitForUnlock()
  setLock()
  googleStorageUpload(bucket: bucketUri,
    credentialsId: "${JOB_GCS_CREDENTIALS}",
    pathPrefix: "${baseDir}/build/distributions/",
    pattern: "${baseDir}/build/distributions/**/*",
    sharedPublicly: true,
    showInline: true
  )
  setUnlock()
}
El miércoles, 28 de octubre de 2020 a las 22:34:59 UTC+1, Ivan Fernandez 
Calvo escribió:

> Hi,
>
> We are facing some issues with a job that has about 100 stages in 
> parallel, we track down the issue and it happens when we storage artifacts 
> on GCP in parallel, the thing is that I am not sure it is related to the 
> plugin directly, Could someone take a look to this stack trace and confirm 
> that it is not related to the Core? BTW we are using Jenkins 2.252 
>
> *19:12:54*  java.util.ConcurrentModificationException*19:12:54*       at 
> java.util.HashMap$HashIterator.nextNode(HashMap.java:1445)*19:12:54*         
> at java.util.HashMap$KeyIterator.next(HashMap.java:1469)*19:12:54*      at 
> com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:73)*19:12:54*
>    at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)*19:12:54*
>      at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)*19:12:54*
>     at 
> hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:264)*19:12:54*
>     at 
> hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:251)*19:12:54*
>   Caused: java.lang.RuntimeException: Failed to serialize 
> com.google.jenkins.plugins.storage.reports.BuildGcsUploadReport#files for 
> class 
> com.google.jenkins.plugins.storage.reports.BuildGcsUploadReport*19:12:54*     
>      at 
> hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:255)*19:12:54*
>      at 
> hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:223)*19:12:54*
>           at 
> com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)*19:12:54*
>      at 
> hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)*19:12:54*
>         at 
> hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)*19:12:54*
>           at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)*19:12:54*
>      at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:88)*19:12:54*
>     at 
> com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.writeItem(AbstractCollectionConverter.java:64)*19:12:54*
>          at 
> com.thoughtworks.xstream.converters.collections.CollectionConverter.marshal(CollectionConverter.java:74)*19:12:54*
>    at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)*19:12:54*
>      at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller$1.convertAnother(AbstractReferenceMarshaller.java:84)*19:12:54*
>     at 
> hudson.util.RobustReflectionConverter.marshallField(RobustReflectionConverter.java:264)*19:12:54*
>     at 
> hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:251)*19:12:54*
>   Caused: java.lang.RuntimeException: Failed to serialize 
> hudson.model.Actionable#actions for class 
> org.jenkinsci.plugins.workflow.job.WorkflowRun*19:12:54*         at 
> hudson.util.RobustReflectionConverter$2.writeField(RobustReflectionConverter.java:255)*19:12:54*
>      at 
> hudson.util.RobustReflectionConverter$2.visit(RobustReflectionConverter.java:223)*19:12:54*
>           at 
> com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:138)*19:12:54*
>      at 
> hudson.util.RobustReflectionConverter.doMarshal(RobustReflectionConverter.java:209)*19:12:54*
>         at 
> hudson.util.RobustReflectionConverter.marshal(RobustReflectionConverter.java:150)*19:12:54*
>           at 
> com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69)*19:12:54*
>      at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43)*19:12:54*
>         at 
> com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82)*19:12:54*
>          at 
> com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)*19:12:54*
>      at com.thoughtworks.xstream.XStream.marshal(XStream.java:1026)*19:12:54* 
>        at 
> com.thoughtworks.xstream.XStream.marshal(XStream.java:1015)*19:12:54*        
> at com.thoughtworks.xstream.XStream.toXML(XStream.java:988)*19:12:54*   at 
> hudson.util.XStream2.toXMLUTF8(XStream2.java:313)*19:12:54*          at 
> org.jenkinsci.plugins.workflow.support.PipelineIOUtils.writeByXStream(PipelineIOUtils.java:34)*19:12:54*
>      at 
> org.jenkinsci.plugins.workflow.job.WorkflowRun.save(WorkflowRun.java:1199)*19:12:54*
>          at hudson.BulkChange.commit(BulkChange.java:98)*19:12:54*       at 
> org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1475)*19:12:54*
>     at 
> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:489)*19:12:54*
>    at 
> org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:38)*19:12:54*
>         at 
> hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:136)*19:12:54*
>         at 
> jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)*19:12:54*
>         at 
> jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)*19:12:54*
>           at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)*19:12:54*
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)*19:12:54*   
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)*19:12:54*
>     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)*19:12:54*
>     at java.lang.Thread.run(Thread.java:748)
>
>
> Thanks
> Ivan Fernandez
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/fb671cbd-7ffd-4fb8-a05c-99bbf100151fn%40googlegroups.com.

Reply via email to