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

JUnitParses blows up on directories with cycles

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • core
    • None

      Hello,

      Our workspace has various symlinks going in different directions, so simple directory scanning ends up in infinite recursion. I get the following output at the end of all my test jobs:

      Build step 'Execute shell' marked build as failure
      Recording test results
      ERROR: Failed to archive test reports
      hudson.util.IOException2: remote file operation failed: /jenkins/workspace/WMCore-UnitTests-try/jobSlice/7/label/wmcore-unit-test-slaves at hudson.remoting.Channel@1e4d9c84:slc5-64-02
      at hudson.FilePath.act(FilePath.java:828)
      at hudson.FilePath.act(FilePath.java:814)
      at hudson.tasks.junit.JUnitParser.parse(JUnitParser.java:83)
      at hudson.tasks.junit.JUnitResultArchiver.parse(JUnitResultArchiver.java:122)
      at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:134)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:705)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:680)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:658)
      at hudson.model.Build$RunnerImpl.post2(Build.java:162)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627)
      at hudson.model.Run.run(Run.java:1438)
      at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:238)
      Caused by: java.io.IOException: Remote call on slc5-64-02 failed
      at hudson.remoting.Channel.call(Channel.java:655)
      at hudson.FilePath.act(FilePath.java:821)
      ... 14 more
      Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
      at java.util.Arrays.copyOf(Arrays.java:2894)
      at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:117)
      at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:589)
      at java.lang.StringBuilder.append(StringBuilder.java:220)
      at java.io.UnixFileSystem.resolve(UnixFileSystem.java:108)
      at java.io.File.<init>(File.java:329)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1256)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1287)
      Finished: FAILURE

      In my (limited) ability to poke around ant it seems like a slowScan() needs to be performed, but I can't figure out where to tickle that in the API.

      Thanks,
      Andrew

            Unassigned Unassigned
            perilousapricot Andrew Melo
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated: