-
Bug
-
Resolution: Fixed
-
Blocker
Observed with post-1.597 cores, after run ID migration.
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)
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.
- is blocking
-
JENKINS-24380 Use build numbers as IDs
-
- Resolved
-
- is related to
-
JENKINS-27704 Clean up build record storage
-
- In Progress
-
-
JENKINS-26761 WorkflowJob.getSCMs throws NullPointerException from notifyCommit hooks after Jenkins Restart
-
- Resolved
-
- links to
Code changed in jenkins
User: Jesse Glick
Path:
CHANGES.md
aggregator/src/test/java/org/jenkinsci/plugins/workflow/WorkflowRunTest.java
aggregator/src/test/resources/org/jenkinsci/plugins/workflow/WorkflowRunTest/loadMigratedBuildRecord.zip
job/src/main/java/org/jenkinsci/plugins/workflow/job/WorkflowRun.java
http://jenkins-ci.org/commit/workflow-plugin/bdf1260dcafaf43bac23ec5d76f01916bc432e64
Log:
[FIXED JENKINS-27531] In 1.597+ Run.getId() is not reliable while it is still being loaded.