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

NotSerializableException seen sporadically when running 5 parallel branches

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • None
    • Declarative - 1.2

      Summary:
      While building from a Jenkinsfile that includes several parallel stages, each of which override directives like agent, tools, and environment, builds occasionally fail with a java.io.NotSerializableException. I suspect this is a race condition, a weird timing glitch, or some other difficult to recreate corner case. (And I know, it's a pretty...odd?...Jenkinsfile).

      Reproducibility:
      Seen twice in ten builds.

      Prerequisites:
      This might not matter, but use a GitHub repo into which the attached Jenkinsfile can be checked in. I have not been able to recreate this as an inline Pipeline job yet (IOW, as a Pipeline hand-edited into the job itself).

      Attachments:

      • I've attached the Jenkinsfile I was using when I first saw this (I've seen it twice now).
      • I've also tarred up the build folder, from my Jenkins server, for a failed build. That's $JENKINS_HOME/jobs/dev1/jobs/declarative-parser-rewrite/branches/a-parallel-bug-in-the-making/builds/9

      Steps to recreate:
      1. Set up a Jenkins with one remote Linux agent, launched via SSH, with the label linux

      2. Check the attached Jenkinsfile into your otherwise empty GitHub repo, and build it.

      3. If you get lucky, you'll see the failure. I've noticed that Stage View always displays the failure as happening in the parallel-5 branch. Don't know if that's useful info or not:

      4. Read the logs to see the NotSerializableException:

      Started by user admin
      Connecting to https://github.beescloud.com/api/v3 using admin/****** (GitHub Enterprise Access Token)
      Obtained Jenkinsfile from e316e55cd44cee55eed9c045eeaee1e3bd0fb781
      [Pipeline] node
      Running on 14-agent in /home/ec2-user/jenkins/jenkins/workspace/-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ
      [Pipeline] {
      [Pipeline] stage
      [Pipeline] { (Declarative: Checkout SCM)
      [Pipeline] checkout
       > git rev-parse --is-inside-work-tree # timeout=10
      Fetching changes from the remote Git repository
       > git config remote.origin.url https://github.beescloud.com/dev1/declarative-parser-rewrite.git # timeout=10
      Fetching without tags
      Fetching upstream changes from https://github.beescloud.com/dev1/declarative-parser-rewrite.git
       > git --version # timeout=10
      using GIT_ASKPASS to set credentials GitHub Enterprise Access Token
       > git fetch --no-tags --progress https://github.beescloud.com/dev1/declarative-parser-rewrite.git +refs/heads/a-parallel-bug-in-the-making:refs/remotes/origin/a-parallel-bug-in-the-making
      Checking out Revision e316e55cd44cee55eed9c045eeaee1e3bd0fb781 (a-parallel-bug-in-the-making)
      Commit message: "See if I can recreate the other weird thing."
       > git config core.sparsecheckout # timeout=10
       > git checkout -f e316e55cd44cee55eed9c045eeaee1e3bd0fb781
       > git rev-list d02684d0341238697ea785357f2c97b71f63d0b6 # timeout=10
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] withEnv
      [Pipeline] {
      [Pipeline] withEnv
      [Pipeline] {
      [Pipeline] timestamps
      [Pipeline] {
      [Pipeline] stage
      [Pipeline] { (Declarative: Tool Install)
      [Pipeline] tool
      [Pipeline] envVarsForTool
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] withEnv
      [Pipeline] {
      [Pipeline] stage
      [Pipeline] { (Parallel Wrapper)
      [Pipeline] parallel
      [Pipeline] [parallel-1] { (Branch: parallel-1)
      [Pipeline] [parallel-2 overrides environment variables] { (Branch: parallel-2 overrides environment variables)
      [Pipeline] [parallel-3 back to jdk8] { (Branch: parallel-3 back to jdk8)
      [Pipeline] [parallel-4 back to jdk7] { (Branch: parallel-4 back to jdk7)
      [Pipeline] [parallel-5 back to jdk8] { (Branch: parallel-5 back to jdk8)
      [Pipeline] [parallel-1] stage
      [Pipeline] [parallel-1] { (parallel-1)
      [Pipeline] [parallel-2 overrides environment variables] stage
      [Pipeline] [parallel-2 overrides environment variables] { (parallel-2 overrides environment variables)
      [Pipeline] [parallel-3 back to jdk8] stage
      [Pipeline] [parallel-3 back to jdk8] { (parallel-3 back to jdk8)
      [Pipeline] [parallel-4 back to jdk7] stage
      [Pipeline] [parallel-4 back to jdk7] { (parallel-4 back to jdk7)
      [Pipeline] [parallel-5 back to jdk8] stage
      [Pipeline] [parallel-5 back to jdk8] { (parallel-5 back to jdk8)
      [Pipeline] [parallel-2 overrides environment variables] node
      [parallel-2 overrides environment variables] Running on 14-agent in /home/ec2-user/jenkins/jenkins/workspace/-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ@2
      [Pipeline] [parallel-3 back to jdk8] withEnv
      [Pipeline] [parallel-3 back to jdk8] {
      [Pipeline] [parallel-4 back to jdk7] withEnv
      [Pipeline] [parallel-4 back to jdk7] {
      [Pipeline] [parallel-5 back to jdk8] withEnv
      [Pipeline] [parallel-5 back to jdk8] {
      [Pipeline] [parallel-2 overrides environment variables] {
      [Pipeline] [parallel-1] tool
      [Pipeline] [parallel-3 back to jdk8] tool
      [Pipeline] [parallel-4 back to jdk7] tool
      [Pipeline] [parallel-5 back to jdk8] tool
      [Pipeline] [parallel-2 overrides environment variables] checkout
      [parallel-2 overrides environment variables]  > git rev-parse --is-inside-work-tree # timeout=10
      [parallel-2 overrides environment variables] Fetching changes from the remote Git repository
      [parallel-2 overrides environment variables]  > git config remote.origin.url https://github.beescloud.com/dev1/declarative-parser-rewrite.git # timeout=10
      [parallel-2 overrides environment variables] Fetching without tags
      [parallel-2 overrides environment variables] Fetching upstream changes from https://github.beescloud.com/dev1/declarative-parser-rewrite.git
      [parallel-2 overrides environment variables]  > git --version # timeout=10
      [parallel-2 overrides environment variables] using GIT_ASKPASS to set credentials GitHub Enterprise Access Token
      [parallel-2 overrides environment variables]  > git fetch --no-tags --progress https://github.beescloud.com/dev1/declarative-parser-rewrite.git +refs/heads/a-parallel-bug-in-the-making:refs/remotes/origin/a-parallel-bug-in-the-making
      [Pipeline] [parallel-1] envVarsForTool
      [Pipeline] [parallel-3 back to jdk8] envVarsForTool
      [Pipeline] [parallel-4 back to jdk7] envVarsForTool
      [Pipeline] [parallel-5 back to jdk8] envVarsForTool
      [Pipeline] [parallel-1] withEnv
      [Pipeline] [parallel-1] {
      [Pipeline] [parallel-3 back to jdk8] withEnv
      [Pipeline] [parallel-3 back to jdk8] {
      [Pipeline] [parallel-4 back to jdk7] withEnv
      [Pipeline] [parallel-4 back to jdk7] {
      [Pipeline] [parallel-5 back to jdk8] withEnv
      [Pipeline] [parallel-5 back to jdk8] {
      [Pipeline] [parallel-1] echo
      [parallel-1] --> AGENT_NAME is linux 
      [Pipeline] [parallel-1] echo
      [parallel-1] --> What version of java?
      [Pipeline] [parallel-1] sh
      [parallel-1] [-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ] Running shell script
      [Pipeline] [parallel-3 back to jdk8] echo
      [parallel-3 back to jdk8] --> What version of java?
      [Pipeline] [parallel-3 back to jdk8] sh
      [parallel-3 back to jdk8] [-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ] Running shell script
      [Pipeline] [parallel-4 back to jdk7] echo
      [parallel-4 back to jdk7] --> What version of java?
      [Pipeline] [parallel-4 back to jdk7] sh
      [parallel-4 back to jdk7] [-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ] Running shell script
      [Pipeline] [parallel-5 back to jdk8] echo
      [parallel-5 back to jdk8] --> What version of java?
      [Pipeline] [parallel-5 back to jdk8] sh
      [parallel-2 overrides environment variables] Checking out Revision e316e55cd44cee55eed9c045eeaee1e3bd0fb781 (a-parallel-bug-in-the-making)
      [parallel-2 overrides environment variables] Commit message: "See if I can recreate the other weird thing."
      [parallel-2 overrides environment variables]  > git config core.sparsecheckout # timeout=10
      [parallel-2 overrides environment variables]  > git checkout -f e316e55cd44cee55eed9c045eeaee1e3bd0fb781
      [parallel-1] + java -version
      [parallel-1] java version "1.8.0_144"
      [parallel-1] Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
      [parallel-1] Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
      [parallel-5 back to jdk8] [-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ] Running shell script
      [Pipeline] [parallel-1] }
      [Pipeline] [parallel-1] // withEnv
      [parallel-3 back to jdk8] + java -version
      [parallel-3 back to jdk8] java version "1.8.0_144"
      [parallel-3 back to jdk8] Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
      [parallel-3 back to jdk8] Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
      [Pipeline] [parallel-1] }
      [Pipeline] [parallel-1] // stage
      [parallel-4 back to jdk7] + java -version
      [parallel-4 back to jdk7] java version "1.7.0_80"
      [parallel-4 back to jdk7] Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
      [parallel-4 back to jdk7] Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
      [Pipeline] [parallel-1] }
      [Pipeline] [parallel-3 back to jdk8] echo
      [parallel-3 back to jdk8] Let's check our environment variables
      [Pipeline] [parallel-3 back to jdk8] echo
      [parallel-3 back to jdk8] This has been inherited!
      [Pipeline] [parallel-3 back to jdk8] echo
      [parallel-3 back to jdk8] YES --> OVERRIDDEN BY PARALLEL-3
      [Pipeline] [parallel-3 back to jdk8] }
      [parallel-5 back to jdk8] + java -version
      [parallel-5 back to jdk8] java version "1.8.0_144"
      [parallel-5 back to jdk8] Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
      [parallel-5 back to jdk8] Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
      [Pipeline] [parallel-3 back to jdk8] // withEnv
      [Pipeline] [parallel-3 back to jdk8] }
      [Pipeline] [parallel-4 back to jdk7] echo
      [parallel-4 back to jdk7] Let's check our environment variables
      [Pipeline] [parallel-4 back to jdk7] echo
      [parallel-4 back to jdk7] This has been inherited!
      [Pipeline] [parallel-4 back to jdk7] echo
      [parallel-4 back to jdk7] YES --> OVERRIDDEN BY PARALLEL-4
      [Pipeline] [parallel-4 back to jdk7] }
      [Pipeline] [parallel-5 back to jdk8] }
      [Pipeline] [parallel-3 back to jdk8] // withEnv
      [Pipeline] [parallel-4 back to jdk7] // withEnv
      [Pipeline] [parallel-3 back to jdk8] }
      [Pipeline] [parallel-4 back to jdk7] }
      [Pipeline] [parallel-5 back to jdk8] // withEnv
      [Pipeline] [parallel-5 back to jdk8] }
      [Pipeline] [parallel-2 overrides environment variables] withEnv
      [Pipeline] [parallel-2 overrides environment variables] {
      [Pipeline] [parallel-3 back to jdk8] // stage
      [Pipeline] [parallel-4 back to jdk7] // withEnv
      [Pipeline] [parallel-3 back to jdk8] }
      [Pipeline] [parallel-4 back to jdk7] }
      [Pipeline] [parallel-5 back to jdk8] // withEnv
      [Pipeline] [parallel-5 back to jdk8] }
      [Pipeline] [parallel-2 overrides environment variables] withEnv
      [Pipeline] [parallel-2 overrides environment variables] {
      [Pipeline] [parallel-4 back to jdk7] // stage
      [Pipeline] [parallel-4 back to jdk7] }
      [Pipeline] [parallel-5 back to jdk8] // stage
      [Pipeline] [parallel-5 back to jdk8] }
      [parallel-5 back to jdk8] Failed in branch parallel-5 back to jdk8
      [Pipeline] [parallel-2 overrides environment variables] tool
      [Pipeline] [parallel-2 overrides environment variables] envVarsForTool
      [Pipeline] [parallel-2 overrides environment variables] withEnv
      [Pipeline] [parallel-2 overrides environment variables] {
      [Pipeline] [parallel-2 overrides environment variables] echo
      [parallel-2 overrides environment variables] --> What version of java?
      [Pipeline] [parallel-2 overrides environment variables] sh
      [parallel-2 overrides environment variables] [-parallel-bug-in-the-making-JHYWOAGTRH755AJK65TA2IZCC5I7G63CN4VIB23FCFKPIKBQ2JWQ@2] Running shell script
      [parallel-2 overrides environment variables] + java -version
      [parallel-2 overrides environment variables] java version "1.7.0_80"
      [parallel-2 overrides environment variables] Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
      [parallel-2 overrides environment variables] Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
      [Pipeline] [parallel-2 overrides environment variables] echo
      [parallel-2 overrides environment variables] Let's check our environment variables
      [Pipeline] [parallel-2 overrides environment variables] echo
      [parallel-2 overrides environment variables] This has been inherited!
      [Pipeline] [parallel-2 overrides environment variables] echo
      [parallel-2 overrides environment variables] YES --> Overridden by parallel-2
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] [parallel-2 overrides environment variables] // withEnv
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] [parallel-2 overrides environment variables] // withEnv
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] [parallel-2 overrides environment variables] // withEnv
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] [parallel-2 overrides environment variables] // node
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] [parallel-2 overrides environment variables] // stage
      [Pipeline] [parallel-2 overrides environment variables] }
      [Pipeline] // parallel
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] stage
      [Pipeline] { (Declarative: Post Actions)
      [Pipeline] echo
      ALWAYS --> Runs all the time.
      [Pipeline] echo
      FAILURE --> Failed. Womp womp.
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] }
      [Pipeline] // withEnv
      [Pipeline] }
      [Pipeline] // timestamps
      [Pipeline] }
      [Pipeline] // withEnv
      [Pipeline] }
      [Pipeline] // withEnv
      [Pipeline] }
      [Pipeline] // node
      [Pipeline] End of Pipeline
      
      GitHub has been notified of this commit’s build result
      
      an exception which occurred:
      	in field locals
      	in field parent
      	in field caller
      	in field parent
      	in field parent
      	in field caller
      	in field parent
      	in field caller
      	in field e
      	in field program
      	in field threads
      	in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@4d857434
      Caused: java.io.NotSerializableException: java.util.TreeMap$Entry
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
      	at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
      	at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
      	at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
      	at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
      	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
      	at java.util.HashMap.internalWriteEntries(HashMap.java:1777)
      	at java.util.HashMap.writeObject(HashMap.java:1354)
      	at sun.reflect.GeneratedMethodAccessor368.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:271)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
      	at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
      	at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
      	at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
      	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
      	at java.util.TreeMap.writeObject(TreeMap.java:2434)
      	at sun.reflect.GeneratedMethodAccessor377.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:271)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:976)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
      	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
      	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
      	at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject(RiverWriter.java:140)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:458)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:434)
      	at org.jenkinsci.plugins.workflow.cps.CpsStepContext$3.onSuccess(CpsStepContext.java:529)
      	at org.jenkinsci.plugins.workflow.cps.CpsStepContext$3.onSuccess(CpsStepContext.java:525)
      	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$4$1.run(CpsFlowExecution.java:744)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
      	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Finished: FAILURE
      

        1. build-9.tgz
          33 kB
        2. generateImage.groovy
          3 kB
        3. image-2017-09-01-16-39-42-593.png
          image-2017-09-01-16-39-42-593.png
          692 kB
        4. Jenkinsfile
          4 kB
        5. jenkins-parallel-bug.jenkinsfile
          11 kB
        6. notifySlack.groovy
          1 kB

            abayer Andrew Bayer
            kshultz Karl Shultz
            Votes:
            1 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: