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

NotSerializableException seen sporadically when running 5 parallel branches

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Labels:
      None
    • Environment:
    • Sprint:
      Declarative - 1.2
    • Similar Issues:

      Description

      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
      

        Attachments

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

          Issue Links

            Activity

            Hide
            roel0 roel postelmans added a comment -

            The latest snapshot doesn't fixes this issue for me...

            Show
            roel0 roel postelmans added a comment - The latest snapshot doesn't fixes this issue for me...
            Hide
            abayer Andrew Bayer added a comment -

            roel postelmans - can you please attach your Jenkinsfile and the stacktrace? Thanks.

            Show
            abayer Andrew Bayer added a comment - roel postelmans - can you please attach your Jenkinsfile and the stacktrace? Thanks.
            Hide
            roel0 roel postelmans added a comment -

            I fixed it 5min ago.

            the problem was the storing of the return value of 'checkout scm' into a variable

            (I identified that by your commit message few comments up)

            Show
            roel0 roel postelmans added a comment - I fixed it 5min ago. the problem was the storing of the return value of 'checkout scm' into a variable (I identified that by your commit message few comments up)
            Hide
            abayer Andrew Bayer added a comment -

            Yeah, we really needed to fix the underlying problem over in scm - which I'm doing now in https://github.com/jenkinsci/workflow-scm-step-plugin/pull/23

            Show
            abayer Andrew Bayer added a comment - Yeah, we really needed to fix the underlying problem over in scm - which I'm doing now in https://github.com/jenkinsci/workflow-scm-step-plugin/pull/23
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Andrew Bayer
            Path:
            src/main/java/org/jenkinsci/plugins/workflow/cps/persistence/IteratorHack.java
            src/test/java/org/jenkinsci/plugins/workflow/cps/persistence/IteratorHackTest.java
            http://jenkins-ci.org/commit/workflow-cps-plugin/4ba68dad40dcd61ca2f50d08b65f45b307ef39b9
            Log:
            [FIXED JENKINS-46597] IteratorHack needs to special-case SortedMap

            For whatever reason that I can't exactly determine yet, Groovy
            categories seem to, at least in some scenarios, treat `Map` differently
            than `SortedMap`. I know, weird. Anyway, `IteratorHack#entrySet(Map)`
            and friends would fire for `HashMap` but not for `TreeMap`. Adding
            these shim methods fixes `entrySet`, `keySet`, and `values`.

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Andrew Bayer Path: src/main/java/org/jenkinsci/plugins/workflow/cps/persistence/IteratorHack.java src/test/java/org/jenkinsci/plugins/workflow/cps/persistence/IteratorHackTest.java http://jenkins-ci.org/commit/workflow-cps-plugin/4ba68dad40dcd61ca2f50d08b65f45b307ef39b9 Log: [FIXED JENKINS-46597] IteratorHack needs to special-case SortedMap For whatever reason that I can't exactly determine yet, Groovy categories seem to, at least in some scenarios, treat `Map` differently than `SortedMap`. I know, weird. Anyway, `IteratorHack#entrySet(Map)` and friends would fire for `HashMap` but not for `TreeMap`. Adding these shim methods fixes `entrySet`, `keySet`, and `values`.

              People

              • Assignee:
                abayer Andrew Bayer
                Reporter:
                kshultz Karl Shultz
              • Votes:
                1 Vote for this issue
                Watchers:
                14 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: