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

Miscellaneous exceptions in config.xml can prevent entire job from loading

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Jenkins has code to ensure that certain kinds of errors in configuration XML, such as missing classes saved by formerly installed plugins, are safely sent to OldDataMonitor and do not break loading of the rest of the item. But this does not seem to work for miscellaneous exceptions rethrown by XStream, such as a syntactically malformed trigger specification.

        Attachments

          Issue Links

            Activity

            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            changelog.html
            core/src/main/java/hudson/util/CopyOnWriteList.java
            core/src/main/java/hudson/util/RobustCollectionConverter.java
            core/src/main/java/hudson/util/RobustReflectionConverter.java
            core/src/main/java/hudson/util/xstream/ImmutableListConverter.java
            test/src/test/groovy/hudson/model/RunMapTest.groovy
            test/src/test/java/hudson/util/RobustReflectionConverterTest.java
            test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip
            http://jenkins-ci.org/commit/jenkins/c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3
            Log:
            [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve.

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/util/CopyOnWriteList.java core/src/main/java/hudson/util/RobustCollectionConverter.java core/src/main/java/hudson/util/RobustReflectionConverter.java core/src/main/java/hudson/util/xstream/ImmutableListConverter.java test/src/test/groovy/hudson/model/RunMapTest.groovy test/src/test/java/hudson/util/RobustReflectionConverterTest.java test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip http://jenkins-ci.org/commit/jenkins/c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3 Log: [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve.
            Hide
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #3120
            [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve. (Revision c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3)

            Result = SUCCESS
            Jesse Glick : c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3
            Files :

            • test/src/test/groovy/hudson/model/RunMapTest.groovy
            • test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip
            • core/src/main/java/hudson/util/xstream/ImmutableListConverter.java
            • test/src/test/java/hudson/util/RobustReflectionConverterTest.java
            • core/src/main/java/hudson/util/RobustCollectionConverter.java
            • core/src/main/java/hudson/util/CopyOnWriteList.java
            • changelog.html
            • core/src/main/java/hudson/util/RobustReflectionConverter.java
            Show
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #3120 [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve. (Revision c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3) Result = SUCCESS Jesse Glick : c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3 Files : test/src/test/groovy/hudson/model/RunMapTest.groovy test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip core/src/main/java/hudson/util/xstream/ImmutableListConverter.java test/src/test/java/hudson/util/RobustReflectionConverterTest.java core/src/main/java/hudson/util/RobustCollectionConverter.java core/src/main/java/hudson/util/CopyOnWriteList.java changelog.html core/src/main/java/hudson/util/RobustReflectionConverter.java
            Hide
            jglick Jesse Glick added a comment -

            Should be considered for backport. For example, saw a job which had a number of historical builds none of which could be loaded:

            WARNING hudson.model.RunMap retrieve
            could not load /…/jobs/…/builds/2013-06-05_17-40-05
            hudson.util.IOException2: Unable to read /…/jobs/…/builds/2013-06-05_17-40-05/build.xml
            	at hudson.XmlFile.unmarshal(XmlFile.java:170)
            	at hudson.model.Run.reload(Run.java:320)
            	at hudson.model.Run.(Run.java:309)
            	at hudson.model.AbstractBuild.(AbstractBuild.java:187)
            	at hudson.model.Build.(Build.java:103)
            	at hudson.model.FreeStyleBuild.(FreeStyleBuild.java:41)
            	at sun.reflect.GeneratedConstructorAccessor104.newInstance(Unknown Source)
            	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
            	at java.lang.reflect.Constructor.newInstance(Unknown Source)
            	at hudson.model.AbstractProject.loadBuild(AbstractProject.java:1152)
            	at hudson.model.AbstractProject$1.create(AbstractProject.java:339)
            	at hudson.model.AbstractProject$1.create(AbstractProject.java:337)
            	at hudson.model.RunMap.retrieve(RunMap.java:225)
            	at hudson.model.RunMap.retrieve(RunMap.java:59)
            	at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:677)
            	at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:660)
            	at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:459)
            	at jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:536)
            	at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382)
            	at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:221)
            	at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:105)
            	at hudson.model.Job.getBuildStabilityHealthReport(Job.java:1082)
            	at hudson.model.Job.getBuildHealthReports(Job.java:1042)
            	at hudson.model.Job.getBuildHealth(Job.java:1007)
            	at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            	at java.lang.reflect.Method.invoke(Unknown Source)
            	at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
            	at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
            	at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
            	at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
            	at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
            	at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
            	at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
            	at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
            	at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
            	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
            	at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
            	at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            	at org.kohsuke.stapler.jelly.groovy.JellyBuilder.doInvokeMethod(JellyBuilder.java:276)
            	at org.kohsuke.stapler.jelly.groovy.Namespace$ProxyImpl.invoke(Namespace.java:92)
            	at com.sun.proxy.$Proxy54.projectView(Unknown Source)
            	at lib.JenkinsTagLib$projectView.call(Unknown Source)
            	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
            	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
            	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
            	at hudson.model.View.main.run(main.groovy:14)
            	at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:69)
            	at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:62)
            	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
            	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
            	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            	at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            	at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            	at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44)
            	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
            	at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
            	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
            	at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
            	at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112)
            	at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
            	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
            	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:752)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799)
            	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587)
            	at org.kohsuke.stapler.Stapler.service(Stapler.java:218)
            	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            	at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
            	at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57)
            	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
            	at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42)
            	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
            	at com.cloudbees.jenkins.support.SupportMetricsFilter.doFilter(SupportMetricsFilter.java:105)
            	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
            	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
            	at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:32)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
            	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
            	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
            	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
            	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
            	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
            	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
            	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554)
            	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
            	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
            	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
            	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
            	at java.lang.Thread.run(Unknown Source)
            Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject() : /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory)
            ---- Debugging information ----
            message             : Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject()
            cause-exception     : java.io.FileNotFoundException
            cause-message       : /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory)
            class               : org.apache.commons.fileupload.disk.DiskFileItem
            required-type       : org.apache.commons.fileupload.disk.DiskFileItem
            converter-type      : com.thoughtworks.xstream.converters.reflection.SerializableConverter
            path                : /build/actions/hudson.model.ParametersAction/parameters/hudson.model.FileParameterValue/file/org.apache.commons.fileupload.disk.DiskFileItem
            line number         : 19
            class[1]            : hudson.model.FileParameterValue
            converter-type[1]   : hudson.util.RobustReflectionConverter
            class[2]            : java.util.ArrayList
            converter-type[2]   : hudson.util.RobustCollectionConverter
            class[3]            : hudson.model.ParametersAction
            class[4]            : java.util.concurrent.CopyOnWriteArrayList
            class[5]            : hudson.model.FreeStyleBuild
            version             : not available
            -------------------------------
            	at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:120)
            	at com.thoughtworks.xstream.converters.reflection.SerializableConverter.doUnmarshal(SerializableConverter.java:425)
            	at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333)
            	at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275)
            	at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
            	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
            	at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:85)
            	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
            	at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:76)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333)
            	at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275)
            	at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
            	at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
            	at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:85)
            	at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
            	at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:76)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333)
            	at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275)
            	at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
            	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
            	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
            	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
            	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1061)
            	at hudson.util.XStream2.unmarshal(XStream2.java:109)
            	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1045)
            	at hudson.XmlFile.unmarshal(XmlFile.java:166)
            	... 166 more
            Caused by: java.io.FileNotFoundException: /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory)
            	at java.io.FileInputStream.open(Native Method)
            	at java.io.FileInputStream.(Unknown Source)
            	at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:709)
            	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            	at java.lang.reflect.Method.invoke(Unknown Source)
            	at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:114)
            	... 212 more
            

            The root problem was JENKINS-13536, but that fix only corrects future builds; without this fix, old builds cannot even be loaded, and so the problem cannot be corrected from the GUI (so the log fills up with errors on every restart). With this fix, OldDataMonitor should be informed about the problematic field and cleanly delete it.

            Show
            jglick Jesse Glick added a comment - Should be considered for backport. For example, saw a job which had a number of historical builds none of which could be loaded: WARNING hudson.model.RunMap retrieve could not load /…/jobs/…/builds/2013-06-05_17-40-05 hudson.util.IOException2: Unable to read /…/jobs/…/builds/2013-06-05_17-40-05/build.xml at hudson.XmlFile.unmarshal(XmlFile.java:170) at hudson.model.Run.reload(Run.java:320) at hudson.model.Run.(Run.java:309) at hudson.model.AbstractBuild.(AbstractBuild.java:187) at hudson.model.Build.(Build.java:103) at hudson.model.FreeStyleBuild.(FreeStyleBuild.java:41) at sun.reflect.GeneratedConstructorAccessor104.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at hudson.model.AbstractProject.loadBuild(AbstractProject.java:1152) at hudson.model.AbstractProject$1.create(AbstractProject.java:339) at hudson.model.AbstractProject$1.create(AbstractProject.java:337) at hudson.model.RunMap.retrieve(RunMap.java:225) at hudson.model.RunMap.retrieve(RunMap.java:59) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:677) at jenkins.model.lazy.AbstractLazyLoadRunMap.load(AbstractLazyLoadRunMap.java:660) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:459) at jenkins.model.lazy.AbstractLazyLoadRunMap.getByNumber(AbstractLazyLoadRunMap.java:536) at jenkins.model.lazy.AbstractLazyLoadRunMap.search(AbstractLazyLoadRunMap.java:382) at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:221) at hudson.model.AbstractBuild.getPreviousBuild(AbstractBuild.java:105) at hudson.model.Job.getBuildStabilityHealthReport(Job.java:1082) at hudson.model.Job.getBuildHealthReports(Job.java:1042) at hudson.model.Job.getBuildHealth(Job.java:1007) at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314) at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185) at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:74) at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161) at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.kohsuke.stapler.jelly.groovy.JellyBuilder.doInvokeMethod(JellyBuilder.java:276) at org.kohsuke.stapler.jelly.groovy.Namespace$ProxyImpl.invoke(Namespace.java:92) at com.sun.proxy.$Proxy54.projectView(Unknown Source) at lib.JenkinsTagLib$projectView.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at hudson.model.View.main.run(main.groovy:14) at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:69) at org.kohsuke.stapler.jelly.groovy.GroovierJellyScript.run(GroovierJellyScript.java:62) at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98) at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269) at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:112) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:674) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:752) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:799) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:587) at org.kohsuke.stapler.Stapler.service(Stapler.java:218) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:100) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96) at hudson.plugins.cloudbees.account.EC2CloudListener$2.doFilter(EC2CloudListener.java:57) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at org.jvnet.hudson.plugins.cors.JenkinsCorsFilter.doFilter(JenkinsCorsFilter.java:42) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at com.cloudbees.jenkins.support.SupportMetricsFilter.doFilter(SupportMetricsFilter.java:105) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at com.cloudbees.jenkins.plugins.dacsecurity.auth.VerifyHostFilter.doFilter(VerifyHostFilter.java:32) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at com.cloudbees.jenkins.plugins.dacsecurity.auth.CloudBeesBasicAuthFilter.doFilter(CloudBeesBasicAuthFilter.java:122) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:554) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source) Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject() : /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory) ---- Debugging information ---- message : Could not call org.apache.commons.fileupload.disk.DiskFileItem.readObject() cause-exception : java.io.FileNotFoundException cause-message : /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory) class : org.apache.commons.fileupload.disk.DiskFileItem required-type : org.apache.commons.fileupload.disk.DiskFileItem converter-type : com.thoughtworks.xstream.converters.reflection.SerializableConverter path : /build/actions/hudson.model.ParametersAction/parameters/hudson.model.FileParameterValue/file/org.apache.commons.fileupload.disk.DiskFileItem line number : 19 class[1] : hudson.model.FileParameterValue converter-type[1] : hudson.util.RobustReflectionConverter class[2] : java.util.ArrayList converter-type[2] : hudson.util.RobustCollectionConverter class[3] : hudson.model.ParametersAction class[4] : java.util.concurrent.CopyOnWriteArrayList class[5] : hudson.model.FreeStyleBuild version : not available ------------------------------- at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:120) at com.thoughtworks.xstream.converters.reflection.SerializableConverter.doUnmarshal(SerializableConverter.java:425) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333) at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275) at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71) at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:85) at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61) at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:76) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333) at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275) at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71) at hudson.util.RobustCollectionConverter.populateCollection(RobustCollectionConverter.java:85) at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61) at hudson.util.RobustCollectionConverter.unmarshal(RobustCollectionConverter.java:76) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at hudson.util.RobustReflectionConverter.unmarshalField(RobustReflectionConverter.java:333) at hudson.util.RobustReflectionConverter.doUnmarshal(RobustReflectionConverter.java:275) at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:222) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1061) at hudson.util.XStream2.unmarshal(XStream2.java:109) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1045) at hudson.XmlFile.unmarshal(XmlFile.java:166) ... 166 more Caused by: java.io.FileNotFoundException: /…/temp/upload_19fe32da_13e9ebe8eb0__8000_00000029.tmp (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(Unknown Source) at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:709) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadObject(SerializationMethodInvoker.java:114) ... 212 more The root problem was JENKINS-13536 , but that fix only corrects future builds; without this fix, old builds cannot even be loaded, and so the problem cannot be corrected from the GUI (so the log fills up with errors on every restart). With this fix, OldDataMonitor should be informed about the problematic field and cleanly delete it.
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Jesse Glick
            Path:
            core/src/main/java/hudson/util/CopyOnWriteList.java
            core/src/main/java/hudson/util/RobustCollectionConverter.java
            core/src/main/java/hudson/util/RobustReflectionConverter.java
            core/src/main/java/hudson/util/xstream/ImmutableListConverter.java
            test/src/test/groovy/hudson/model/RunMapTest.groovy
            test/src/test/java/hudson/util/RobustReflectionConverterTest.java
            test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip
            http://jenkins-ci.org/commit/jenkins/15fcf7c78b456321b1c0d306675b0907298ea770
            Log:
            [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve.
            (cherry picked from commit c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3)

            Conflicts:
            changelog.html
            core/src/main/java/hudson/util/RobustReflectionConverter.java

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: core/src/main/java/hudson/util/CopyOnWriteList.java core/src/main/java/hudson/util/RobustCollectionConverter.java core/src/main/java/hudson/util/RobustReflectionConverter.java core/src/main/java/hudson/util/xstream/ImmutableListConverter.java test/src/test/groovy/hudson/model/RunMapTest.groovy test/src/test/java/hudson/util/RobustReflectionConverterTest.java test/src/test/resources/hudson/util/RobustReflectionConverterTest/randomExceptionsReported.zip http://jenkins-ci.org/commit/jenkins/15fcf7c78b456321b1c0d306675b0907298ea770 Log: [FIXED JENKINS-21024] Catch a full range of XStreamException’s during deserialization, including rethrown exceptions from readResolve. (cherry picked from commit c3508113f0e1659f0e6c1064f31cb2ac1caa2ef3) Conflicts: changelog.html core/src/main/java/hudson/util/RobustReflectionConverter.java

              People

              • Assignee:
                jglick Jesse Glick
                Reporter:
                jglick Jesse Glick
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: