recampbell created JENKINS-13936:
------------------------------------

             Summary: Fitnesse results parsing uses too much heap
                 Key: JENKINS-13936
                 URL: https://issues.jenkins-ci.org/browse/JENKINS-13936
             Project: Jenkins
          Issue Type: Bug
          Components: fitnesse
            Reporter: recampbell


We are seeing OOME's in Jenkins when parsing large Fitnesse results files 
(35mb). For example:
{quote}
Reading results as US-ASCII from /.../fitnesse-result.xml 
Parsing results... 
java.lang.OutOfMemoryError: Java heap space 
at java.util.Arrays.copyOf(Arrays.java:2882) 
at 
java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) 
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515) 
at java.lang.StringBuffer.append(StringBuffer.java:306) 
at 
com.sun.org.apache.xalan.internal.xsltc.runtime.StringValueHandler.characters(StringValueHandler.java:49)
 
at 
com.sun.org.apache.xml.internal.utils.FastStringBuffer.sendSAXcharacters(FastStringBuffer.java:998)
 
at 
com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2.dispatchCharactersEvents(SAX2DTM2.java:3068)
 
at 
com.sun.org.apache.xalan.internal.xsltc.dom.SAXImpl.characters(SAXImpl.java:1562)
 
at 
com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.characters(DOMAdapter.java:330)
 
at GregorSamsa.template$dot$2() 
at GregorSamsa.applyTemplates() 
at GregorSamsa.template$dot$0() 
at GregorSamsa.applyTemplates() 
at GregorSamsa.applyTemplates() 
at GregorSamsa.transform() 
at 
com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:603)
 
at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:709)
 
at 
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:313)
 
at 
hudson.plugins.fitnesse.NativePageCountsParser.transformRawResults(NativePageCountsParser.java:25)
 
at 
hudson.plugins.fitnesse.NativePageCountsParser.parse(NativePageCountsParser.java:17)
 
at 
hudson.plugins.fitnesse.FitnesseResultsRecorder.getResults(FitnesseResultsRecorder.java:131)
 
at 
hudson.plugins.fitnesse.FitnesseResultsRecorder.getResults(FitnesseResultsRecorder.java:109)
 
at 
hudson.plugins.fitnesse.FitnesseResultsRecorder.perform(FitnesseResultsRecorder.java:73)
 
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:36) 
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:161) 
at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627) 
at hudson.model.Run.run(Run.java:1400) 
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
at hudson.model.ResourceController.execute(ResourceController.java:88) 
Build step 'Publish Fitnesse results report' changed build result to FAILURE 
Build step 'Publish Fitnesse results report' marked build as failure 
{quote}

Perhaps it would be more efficient to use a streaming parser like SAX?



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to