java.io.EOFException: input contained no data

Jenkins JIRA | jpollak | 6 years ago
  1. 0

    Although this issue manifests itself with the Accurev plugin, I believe this is an issue with the Hudson core because we have found that downgrading the version of Hudson fixes the problem, but the Accurev plugin version can remain the same. This implies to me something changed in Hudson to cause this problem. We get the following error when we try to compile our software using Jenkins 1.395 and Accurev Plugin 0.6.12-SNAPSHOT. This happens on our build slaves (nodes), but not on the Hudson master. I have run the "failing" command on the command-line and I do not see any syntax errors in the XML output. It seems as though the long list of streams (we have many, many) is overflowing the XML parser. I also wrote a small test around the accurev-plugin code that loaded the XML stream from file, and this code worked correctly. This leads me to believe there is an issue with the Channel implementation to the slave node, since it seems to work correctly on the Master. We found that downgrading to 1.380 exhibited a slightly different, but still fatal error, and by downgrading to 1.377, the problem went away completely. {code} Started by user anonymous Building remotely on flawlessvm3 Authenticating with Accurev server... Purging workspace... Workspace purged. [Josh_Framework_maven3] $ accurev login -H accurev.XXXX.com:5050 arevjira ******** Authentication completed successfully. Getting a list of streams... [Josh_Framework_maven3] $ accurev show -H accurev.XXXX.com:5050 -fx -p software streams java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 22935 and start tag <streams> from line 1, parser stopped on TEXT seen ...<stream\n name="project_stream_name... @22935:44 at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseAttribute(MXParser.java:2026) at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1799) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getStreams(AccurevSCM.java:752) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:295) at hudson.model.AbstractProject.checkout(AbstractProject.java:1171) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:499) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:415) at hudson.model.Run.run(Run.java:1362) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:145) Recording test results Notifying upstream projects of job completion Finished: FAILURE {code} When we downgraded to Hudson 1.380, we get this similar, but different error instead: {code} [Josh_SmokeTests_maven3] $ accurev hist -H accurev.kivasystems.com:5050 -fx -p software -s mhs_Josh -t now.1 -k add getTimeOfLatestTransaction failed when checking the stream mhs_Josh for changes with transaction type add java.io.EOFException: input contained no data at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3003) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getLatestTransaction(AccurevSCM.java:980) at hudson.plugins.accurev.AccurevSCM.checkStreamForChanges(AccurevSCM.java:896) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:521) at hudson.model.AbstractProject.checkout(AbstractProject.java:1082) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) at hudson.model.Run.run(Run.java:1280) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:140) {code} When we finally downgraded all the way to Hudson 1.377, the problem went away completely. I submitted a matching issue on the hudson-ci.org issue tracker, here: http://issues.hudson-ci.org/browse/HUDSON-8703

    Jenkins JIRA | 6 years ago | jpollak
    java.io.EOFException: input contained no data
  2. 0

    Although this issue manifests itself with the Accurev plugin, I believe this is an issue with the Hudson core because we have found that downgrading the version of Hudson fixes the problem, but the Accurev plugin version can remain the same. This implies to me something changed in Hudson to cause this problem. We get the following error when we try to compile our software using Jenkins 1.395 and Accurev Plugin 0.6.12-SNAPSHOT. This happens on our build slaves (nodes), but not on the Hudson master. I have run the "failing" command on the command-line and I do not see any syntax errors in the XML output. It seems as though the long list of streams (we have many, many) is overflowing the XML parser. I also wrote a small test around the accurev-plugin code that loaded the XML stream from file, and this code worked correctly. This leads me to believe there is an issue with the Channel implementation to the slave node, since it seems to work correctly on the Master. We found that downgrading to 1.380 exhibited a slightly different, but still fatal error, and by downgrading to 1.377, the problem went away completely. {code} Started by user anonymous Building remotely on flawlessvm3 Authenticating with Accurev server... Purging workspace... Workspace purged. [Josh_Framework_maven3] $ accurev login -H accurev.XXXX.com:5050 arevjira ******** Authentication completed successfully. Getting a list of streams... [Josh_Framework_maven3] $ accurev show -H accurev.XXXX.com:5050 -fx -p software streams java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 22935 and start tag <streams> from line 1, parser stopped on TEXT seen ...<stream\n name="project_stream_name... @22935:44 at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseAttribute(MXParser.java:2026) at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1799) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getStreams(AccurevSCM.java:752) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:295) at hudson.model.AbstractProject.checkout(AbstractProject.java:1171) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:499) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:415) at hudson.model.Run.run(Run.java:1362) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:145) Recording test results Notifying upstream projects of job completion Finished: FAILURE {code} When we downgraded to Hudson 1.380, we get this similar, but different error instead: {code} [Josh_SmokeTests_maven3] $ accurev hist -H accurev.kivasystems.com:5050 -fx -p software -s mhs_Josh -t now.1 -k add getTimeOfLatestTransaction failed when checking the stream mhs_Josh for changes with transaction type add java.io.EOFException: input contained no data at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3003) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getLatestTransaction(AccurevSCM.java:980) at hudson.plugins.accurev.AccurevSCM.checkStreamForChanges(AccurevSCM.java:896) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:521) at hudson.model.AbstractProject.checkout(AbstractProject.java:1082) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) at hudson.model.Run.run(Run.java:1280) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:140) {code} When we finally downgraded all the way to Hudson 1.377, the problem went away completely. I submitted a matching issue on the hudson-ci.org issue tracker, here: http://issues.hudson-ci.org/browse/HUDSON-8703

    Jenkins JIRA | 6 years ago | jpollak
    java.io.EOFException: input contained no data
  3. Speed up your debug routine!

    Automated exception search integrated into your IDE

  4. 0

    Sometimes, when a build (whose source code is stored in AccuRev) starts and the AccuRev plugin starts talking to the AccuRev server, one gets the following error: {noformat} Started by user anonymous Building remotely on uk-hudson-slave03 Purging workspace... Workspace purged. Authenticating with Accurev server... [myHudsonProject] $ "C:\Program Files\AccuRev\bin\accurev.exe" login -H accurev:5050 Build ******** Authentication completed successfully. Getting a list of streams... [myHudsonProject] $ "C:\Program Files\AccuRev\bin\accurev.exe" show -H accurev:5050 -fx -p MyDepot_ streams java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 4187 and start tag <streams> from line 1, parser stopped on TEXT seen ... depotName="MyDepot_"\r\n streamNumber="4931"\r\n isDynami... @4193:15 at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseAttribute(MXParser.java:1944) at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1799) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getStreams(AccurevSCM.java:807) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:307) at hudson.model.AbstractProject.checkout(AbstractProject.java:1119) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) at hudson.model.Run.run(Run.java:1324) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:139) {noformat} When this happens, the subsequent SCM retries in the immediate aftermath typically fail as well. If one waits a while before retrying, all is well (but by this time, we've had a build failure reported). i.e. it appears to be a spurious, unpredictable failure. I can't be certain it's not the AccuRev server, but the only sure-fire way of finding out would be if the plugin dumped the XML it got from the AccuRev command into a file and then logged that on failure.

    Jenkins JIRA | 6 years ago | pjdarton
    java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 4187 and start tag <streams> from line 1, parser stopped on TEXT seen ... depotName="MyDepot_"\r\n streamNumber="4931"\r\n isDynami... @4193:15
  5. 0

    Sometimes, when a build (whose source code is stored in AccuRev) starts and the AccuRev plugin starts talking to the AccuRev server, one gets the following error: {noformat} Started by user anonymous Building remotely on uk-hudson-slave03 Purging workspace... Workspace purged. Authenticating with Accurev server... [myHudsonProject] $ "C:\Program Files\AccuRev\bin\accurev.exe" login -H accurev:5050 Build ******** Authentication completed successfully. Getting a list of streams... [myHudsonProject] $ "C:\Program Files\AccuRev\bin\accurev.exe" show -H accurev:5050 -fx -p MyDepot_ streams java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 4187 and start tag <streams> from line 1, parser stopped on TEXT seen ... depotName="MyDepot_"\r\n streamNumber="4931"\r\n isDynami... @4193:15 at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035) at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046) at org.xmlpull.mxp1.MXParser.parseAttribute(MXParser.java:1944) at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1799) at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127) at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) at hudson.plugins.accurev.AccurevSCM.getStreams(AccurevSCM.java:807) at hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:307) at hudson.model.AbstractProject.checkout(AbstractProject.java:1119) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411) at hudson.model.Run.run(Run.java:1324) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:139) {noformat} When this happens, the subsequent SCM retries in the immediate aftermath typically fail as well. If one waits a while before retrying, all is well (but by this time, we've had a build failure reported). i.e. it appears to be a spurious, unpredictable failure. I can't be certain it's not the AccuRev server, but the only sure-fire way of finding out would be if the plugin dumped the XML it got from the AccuRev command into a file and then logged that on failure.

    Jenkins JIRA | 6 years ago | pjdarton
    java.io.EOFException: no more data available - expected end tags </stream></streams> to close start tag <stream> from line 4187 and start tag <streams> from line 1, parser stopped on TEXT seen ... depotName="MyDepot_"\r\n streamNumber="4931"\r\n isDynami... @4193:15

    11 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.io.EOFException

      input contained no data

      at org.xmlpull.mxp1.MXParser.fillBuf()
    2. MXP1: Xml Pull Parser 3rd Edition (XPP3)
      MXParser.next
      1. org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3003)
      2. org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
      3. org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1410)
      4. org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395)
      5. org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
      5 frames
    3. hudson.plugins.accurev
      AccurevSCM.checkout
      1. hudson.plugins.accurev.AccurevSCM.getLatestTransaction(AccurevSCM.java:980)
      2. hudson.plugins.accurev.AccurevSCM.checkStreamForChanges(AccurevSCM.java:896)
      3. hudson.plugins.accurev.AccurevSCM.checkout(AccurevSCM.java:521)
      3 frames
    4. Hudson
      Executor.run
      1. hudson.model.AbstractProject.checkout(AbstractProject.java:1082)
      2. hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:479)
      3. hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:411)
      4. hudson.model.Run.run(Run.java:1280)
      5. hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      6. hudson.model.ResourceController.execute(ResourceController.java:88)
      7. hudson.model.Executor.run(Executor.java:140)
      7 frames