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

Mysterious serialization errors

    XMLWordPrintable

Details

    Description

      A flow which just had

      node('...') {sh 'echo hi'}
      

      waited for a node matching the label. I restarted Jenkins after changing something so that the label would be available. The shell step ran, but then the flow failed with

      ...
      Running: Allocate node : End
      Running: End of Workflow
      java.io.NotSerializableException: org.jenkinsci.plugins.workflow.job.WorkflowJob
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:890)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1062)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:10S18)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:884)
      	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:584)
      	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.close(RiverWriter.java:145)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:341)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:323)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:297)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:71)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.call(CpsThreadGroup.java:183)
      	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.call(CpsThreadGroup.java:181)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      	at java.lang.Thread.run(Thread.java:745)
      	at org.jenkinsci.plugins.workflow.cps.CpsVmThread.run(CpsVmThread.java:21)
      Caused by: an exception which occurred:
      	in field task
      	in object java.util.ArrayList@401ac88
      Finished: FAILURE
      

      CpsStepContext.getThread then began complaining that

          no thread 2 among []
      

      as the DurableTaskStep$Execution.run kept on running.

      It is not apparent from this stack trace why something is trying to serialize the job.

      Observed also in PR 21; https://github.com/jenkinsci/workflow-plugin/commit/a594618516a22e9e8bcd016808ca487efee80fff fixed it. Turned out in that case that the culprit was ExecutorPickle. But why could the error message not say that? It only said field task, which was not enough information.

      Attachments

        Issue Links

          Activity

            Code changed in jenkins
            User: Jesse Glick
            Path:
            pom.xml
            http://jenkins-ci.org/commit/workflow-basic-steps-plugin/0bc7e9e9aee673c441a701c01a4ddc3cc95c4451
            Log:
            JENKINS-26137 Picking up possible fix for integration testing.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml http://jenkins-ci.org/commit/workflow-basic-steps-plugin/0bc7e9e9aee673c441a701c01a4ddc3cc95c4451 Log: JENKINS-26137 Picking up possible fix for integration testing.

            Code changed in jenkins
            User: Jesse Glick
            Path:
            pom.xml
            http://jenkins-ci.org/commit/workflow-basic-steps-plugin/b3c2bbb807e0a2ad32560a7f6a1d49c7f3ccd59c
            Log:
            Merge pull request #39 from jglick/no-PickleFactory-JENKINS-26137

            JENKINS-26137 Picking up possible fix for integration testing

            Compare: https://github.com/jenkinsci/workflow-basic-steps-plugin/compare/a3978f99059a...b3c2bbb807e0

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml http://jenkins-ci.org/commit/workflow-basic-steps-plugin/b3c2bbb807e0a2ad32560a7f6a1d49c7f3ccd59c Log: Merge pull request #39 from jglick/no-PickleFactory- JENKINS-26137 JENKINS-26137 Picking up possible fix for integration testing Compare: https://github.com/jenkinsci/workflow-basic-steps-plugin/compare/a3978f99059a...b3c2bbb807e0
            jglick Jesse Glick added a comment -

            Seems like jboss-marshalling PR 37 is intended to address this.

            jglick Jesse Glick added a comment - Seems like jboss-marshalling PR 37 is intended to address this.

            Code changed in jenkins
            User: Jesse Glick
            Path:
            pom.xml
            src/test/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverWriterTest.java
            http://jenkins-ci.org/commit/workflow-support-plugin/71c8e118dba6361659ddfed0c0caf2274d8bc927
            Log:
            [FIXED JENKINS-26137] Integrate a patched version of JBoss Marshalling with better diagnostics.

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: pom.xml src/test/java/org/jenkinsci/plugins/workflow/support/pickles/serialization/RiverWriterTest.java http://jenkins-ci.org/commit/workflow-support-plugin/71c8e118dba6361659ddfed0c0caf2274d8bc927 Log: [FIXED JENKINS-26137] Integrate a patched version of JBoss Marshalling with better diagnostics.
            svanoort Sam Van Oort added a comment -

            Released with v2.15

            svanoort Sam Van Oort added a comment - Released with v2.15

            People

              jglick Jesse Glick
              jglick Jesse Glick
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: