Change By: Jesse Glick (20/Mar/15 9:05 PM)
Summary: Stack overflow in WorkflowRun.reload  after run ID migration
Description: Observed with  newer  post-1.597  cores, after run ID migration.

{code:none}
hudson.model.Run.<init>(Run.java:320)
org.jenkinsci.plugins.workflow.job.WorkflowRun.<init>(WorkflowRun.java:133)
sun.reflect.GeneratedConstructorAccessor65.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:408)
jenkins.model.lazy.LazyBuildMixIn.loadBuild(LazyBuildMixIn.java:158)
jenkins.model.lazy.LazyBuildMixIn$1.create(LazyBuildMixIn.java:135)
hudson.model.RunMap.retrieve(RunMap.java:222)
hudson.model.RunMap.retrieve(RunMap.java:57)
jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:465)
jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:448)
jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:356)
hudson.model.RunMap.getById(RunMap.java:203)
org.jenkinsci.plugins.workflow.job.WorkflowRun$Owner.run(WorkflowRun.java:559)
org.jenkinsci.plugins.workflow.job.WorkflowRun$Owner.getRootDir(WorkflowRun.java:588)
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.getStorageDir(CpsFlowExecution.java:315)
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.createStorage(CpsFlowExecution.java:308)
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.access$800(CpsFlowExecution.java:188)
org.jenkinsci.plugins.workflow.cps.CpsFlowExecution$ConverterImpl.unmarshal(CpsFlowExecution.java:817)
hudson.util.XStream2$AssociatedConverterImpl.unmarshal(XStream2.java:362)
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:349)
hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:289)
hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:228)
com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1189)
hudson.util.XStream2.unmarshal(XStream2.java:113)
com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1173)
hudson.XmlFile.unmarshal(XmlFile.java:163)
org.jenkinsci.plugins.workflow.job.WorkflowRun.reload(WorkflowRun.java:360)
hudson.model.Run.<init>(Run.java:320)
{code}


While it is awkward that {{CpsFlowExecution}} deserialization in turn forces the {{WorkflowRun}} candidate to be returned from {{Owner.run}}, this is normally harmless. The problem here seems to be that after {{RunIdMigrator}} has run, the {{WorkflowRun.id}} is read (via {{key}}) by {{reload}}, yet it is still null at that point because {{unmarshal}} has yet to be called, so {{LOADING_RUNS}} is inaccurate.
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to