• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Blocker Blocker
    • core
    • Oracle JDK 1.7.0_25, Jenkins Server 1.509.3 RC1 (builds on master + 1 slave)

      Since ~24h I have various corrupted fingerprints. Each time the file is truncated.
      I attach a sample.
      The job trying to load it display a large error misleading for developers that may don't see the real error in the build.
      Example : https://ci.exoplatform.org/job/platform-ui-master-ci/539/consoleFull

      Waiting for Jenkins to finish collecting data
      ERROR: Asynchronous execution failure
      java.util.concurrent.ExecutionException: hudson.util.IOException2: Unable to read /srv/jenkins/fingerprints/14/a9/7327d5753400da072a897d5688d5.xml
      	at hudson.remoting.Channel$4.adapt(Channel.java:705)
      	at hudson.remoting.Channel$4.adapt(Channel.java:700)
      	at hudson.remoting.FutureAdapter.get(FutureAdapter.java:55)
      	at hudson.maven.AbstractMavenBuilder.waitForAsynchronousExecutions(AbstractMavenBuilder.java:185)
      	at hudson.maven.Maven3Builder.call(Maven3Builder.java:105)
      	at hudson.maven.Maven3Builder.call(Maven3Builder.java:66)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      	at java.lang.Thread.run(Thread.java:662)
      Caused by: hudson.util.IOException2: Unable to read /srv/jenkins/fingerprints/14/a9/7327d5753400da072a897d5688d5.xml
      	at hudson.XmlFile.read(XmlFile.java:147)
      	at hudson.model.Fingerprint.load(Fingerprint.java:981)
      	at hudson.model.Fingerprint.load(Fingerprint.java:969)
      	at hudson.model.FingerprintMap.load(FingerprintMap.java:94)
      	at hudson.model.FingerprintMap.load(FingerprintMap.java:45)
      	at hudson.util.KeyedDataStorage.get(KeyedDataStorage.java:154)
      	at hudson.model.FingerprintMap.get(FingerprintMap.java:79)
      	at hudson.model.FingerprintMap.get(FingerprintMap.java:45)
      	at hudson.util.KeyedDataStorage.getOrCreate(KeyedDataStorage.java:108)
      	at hudson.model.FingerprintMap.getOrCreate(FingerprintMap.java:65)
      	at hudson.maven.reporters.MavenFingerprinter$1.call(MavenFingerprinter.java:125)
      	at hudson.maven.reporters.MavenFingerprinter$1.call(MavenFingerprinter.java:112)
      	at hudson.maven.MavenBuild$ProxyImpl.execute(MavenBuild.java:404)
      	at hudson.maven.MavenBuild$ProxyImpl2.execute(MavenBuild.java:477)
      	at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at hudson.model.Executor$1.call(Executor.java:543)
      	at hudson.util.InterceptingProxy$1.invoke(InterceptingProxy.java:23)
      	at com.sun.proxy.$Proxy45.execute(Unknown Source)
      	at hudson.maven.MavenBuildProxy$Filter$AsyncInvoker.call(MavenBuildProxy.java:270)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      	at hudson.remoting.Request$2.run(Request.java:326)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	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:724)
      Caused by: com.thoughtworks.xstream.converters.ConversionException:  : no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12 :  : no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12
      ---- Debugging information ----
      message             :  : no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12
      cause-exception     : com.thoughtworks.xstream.io.StreamException
      cause-message       :  : no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12
      class               : java.util.Hashtable
      required-type       : java.util.Hashtable
      converter-type      : com.thoughtworks.xstream.converters.collections.MapConverter
      path                : /fingerprint/usages/entry[1030]
      line number         : 4126
      class[1]            : hudson.model.Fingerprint
      converter-type[1]   : hudson.util.RobustReflectionConverter
      version             : null
      -------------------------------
      	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
      	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 com.thoughtworks.xstream.XStream.fromXML(XStream.java:925)
      	at hudson.XmlFile.read(XmlFile.java:143)
      	... 29 more
      Caused by: com.thoughtworks.xstream.io.StreamException:  : no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12
      	at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:126)
      	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148)
      	at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:141)
      	at com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:118)
      	at com.thoughtworks.xstream.io.xml.AbstractPullReader.moveUp(AbstractPullReader.java:113)
      	at com.thoughtworks.xstream.io.ReaderWrapper.moveUp(ReaderWrapper.java:40)
      	at com.thoughtworks.xstream.io.path.PathTrackingReader.moveUp(PathTrackingReader.java:42)
      	at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:79)
      	at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:72)
      	at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:67)
      	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
      	... 45 more
      Caused by: java.io.EOFException: no more data available - expected end tags </entry></usages></fingerprint> to close start tag <entry> from line 4123 and start tag <usages> from line 6 and start tag <fingerprint> from line 2, parser stopped on TEXT seen ...</ranges>\n    </entry... @4126:12
      	at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
      	at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
      	at org.xmlpull.mxp1.MXParser.parseEndTag(MXParser.java:1671)
      	at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1131)
      	at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
      	at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:109)
      	... 55 more
      channel stopped
      

          [JENKINS-19515] fingerprint are truncated

          Arnaud Héritier created issue -

          Probably related to JENKINS-16301, I just upgraded few days ago from 1.480.3 where I didn't have this problem

          Arnaud Héritier added a comment - Probably related to JENKINS-16301 , I just upgraded few days ago from 1.480.3 where I didn't have this problem
          Arnaud Héritier made changes -
          Link New: This issue depends on JENKINS-16301 [ JENKINS-16301 ]

          Few minutes before having issues with a new truncated fingerprint i can see :

          INFO: Started Fingerprint cleanup
          

          coincidence ?
          Note that it's long to execute :

          Sep 08, 2013 6:54:20 AM hudson.model.AsyncPeriodicWork$1 run
          INFO: Started Fingerprint cleanup
          ...
          INFO: Finished Fingerprint cleanup. 6622578 ms
          Sep 09, 2013 6:54:20 AM hudson.model.AsyncPeriodicWork$1 run
          INFO: Started Fingerprint cleanup
          ...
          INFO: Finished Fingerprint cleanup. 9042842 ms
          

          Arnaud Héritier added a comment - Few minutes before having issues with a new truncated fingerprint i can see : INFO: Started Fingerprint cleanup coincidence ? Note that it's long to execute : Sep 08, 2013 6:54:20 AM hudson.model.AsyncPeriodicWork$1 run INFO: Started Fingerprint cleanup ... INFO: Finished Fingerprint cleanup. 6622578 ms Sep 09, 2013 6:54:20 AM hudson.model.AsyncPeriodicWork$1 run INFO: Started Fingerprint cleanup ... INFO: Finished Fingerprint cleanup. 9042842 ms

          Jesse Glick added a comment -

          Blocking JENKINS-16301, not depending on it.

          Jesse Glick added a comment - Blocking JENKINS-16301 , not depending on it.
          Jesse Glick made changes -
          Link New: This issue is blocking JENKINS-16301 [ JENKINS-16301 ]
          Jesse Glick made changes -
          Link Original: This issue depends on JENKINS-16301 [ JENKINS-16301 ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Jesse Glick made changes -
          Labels New: lts-candidate

          Code changed in jenkins
          User: Jesse Glick
          Path:
          changelog.html
          core/src/main/java/hudson/model/Fingerprint.java
          core/src/main/java/hudson/model/FingerprintCleanupThread.java
          http://jenkins-ci.org/commit/jenkins/7790dbcabfcfe3aeb8db54cf13673036e0548d34
          Log:
          [FIXED JENKINS-19515] Try to avoid truncation of fingerprint storage files.
          1. Use AtomicFileWriter on the hypothesis that an exception during save() caused truncation.
          2. Improve logging from the cleanup thread since that may be related to the root cause.
          3. Regardless of the cause, recover more gracefully by deleting any truncated file rather than throwing the error up.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: changelog.html core/src/main/java/hudson/model/Fingerprint.java core/src/main/java/hudson/model/FingerprintCleanupThread.java http://jenkins-ci.org/commit/jenkins/7790dbcabfcfe3aeb8db54cf13673036e0548d34 Log: [FIXED JENKINS-19515] Try to avoid truncation of fingerprint storage files. 1. Use AtomicFileWriter on the hypothesis that an exception during save() caused truncation. 2. Improve logging from the cleanup thread since that may be related to the root cause. 3. Regardless of the cause, recover more gracefully by deleting any truncated file rather than throwing the error up.
          SCM/JIRA link daemon made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: In Progress [ 3 ] New: Resolved [ 5 ]

            jglick Jesse Glick
            aheritier Arnaud Héritier
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: