2012-11-14 14 views
2

在构建使用Jenkins时出现以下异常。这个异常在运行Cucumber测试后引发。对Java堆空间异常运行Cucumber测试后,Jenkins构建失败

任何人都可以告诉Java堆空间失败的确切位置吗?

你有什么想法可以做些什么来解决它?一些背景:在Cucumber测试期间,我增加了一个java堆空间,在增加了内存之后,Cucumber测试通过了,但是之后我得到了这个java堆空间。

感谢,

利奥尔

mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.9(default-test) 
[JENKINS] Recording test results 
mavenExecutionResult exceptions not empty 
message : Java heap space 
Stack trace : 
java.lang.OutOfMemoryError: Java heap space 
    at java.util.Arrays.copyOfRange(Arrays.java:3209) 
    at java.lang.String.<init>(String.java:215) 
    at com.sun.org.apache.xerces.internal.xni.XMLString.toString(XMLString.java:185) 
    at com.sun.org.apache.xerces.internal.util.XMLAttributesImpl.getValue(XMLAttributesImpl.java:537) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser$AttributesProxy.getValue(AbstractSAXParser.java:2319) 
    at org.dom4j.tree.AbstractElement.setAttributes(AbstractElement.java:543) 
    at org.dom4j.io.SAXContentHandler.addAttributes(SAXContentHandler.java:916) 
    at org.dom4j.io.SAXContentHandler.startElement(SAXContentHandler.java:249) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:377) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) 
    at org.dom4j.io.SAXReader.read(SAXReader.java:465) 
    at org.dom4j.io.SAXReader.read(SAXReader.java:264) 
    at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:112) 
    at hudson.tasks.junit.TestResult.parse(TestResult.java:227) 
    at hudson.tasks.junit.TestResult.parse(TestResult.java:163) 
    at hudson.maven.reporters.SurefireArchiver.postExecute(SurefireArchiver.java:141) 
    at hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:421) 
    at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:403) 
    at org.jfrog.build.extractor.maven.BuildInfoRecorder.mojoSucceeded(BuildInfoRecorder.java:241) 
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87) 
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228) 
channel stopped 

回答

1

走进詹金斯设置和MAVEN_OPTS添加环境变量-Xmx512m -XX:MaxPermSize=256m。它看起来像你的测试完成后,它试图解析结果,但XML文件太大。

+0

谢谢,@Jordan,我会试试看。 – LiorK

+0

@LiorK您可能还需要增加Jenkins本身的堆大小。你在运行什么操作系统? –

+0

我在Amazon EC2服务器上使用Linux。你知道我怎么能增加Jenkins本身的堆大小? – LiorK

0

我不确定你的CI环境是什么样的,但是如果你将Jenkins作为Windows服务运行,你也可以尝试增加可用的堆大小。

为此,请在$ {JENKINS_HOME} \ jenkins.xml中找到该文件并适当地更新命令行参数。 (即,将“-Xmx256m”更改为更大的值,例如“-Xmx512m”)。

+0

。也许乔丹的方式将解决它。 – LiorK

0

我会先试着分析黄瓜长时间输出的原因。 在我的情况下,这是同样的堆栈跟踪,这是由黄瓜报告太多的测试。

+0

“太多测试”是什么意思? – LiorK

+0

一堆测试失败的原因相同。 –

相关问题