OutOfMemory Exception
----------------------
Key: SUREFIRE-495
URL: http://jira.codehaus.org/browse/SUREFIRE-495
Project: Maven Surefire
Issue Type: Bug
Components: plugin
Affects Versions: 2.4.2
Environment: VMWare with Suse Linux 32bit,
Surfire Plugin with Maven2 and TestNG
Reporter: Andre
Priority: Critical
Attachments: bugreport.zip
Hello,
when we run testNG Tests in Parallel Mode, we become a OutOfMemory Exception
from the jvm.
Surfire safe the log information as a lot of byte-Arrays, and dosn't destroy
this, so we run into a memmoryleak.
in a example stackdump we bekomme ~1500
'org.apache.maven.surefire.util.TeeStream' objects whitch have ~500MB retained
size.
We have found the Problem in the log handling from surfire, when surfire sends
the output into StreamArrays.
surfire plugin-call in pom.xml:
...
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkMode>once</forkMode>
<systemProperties>
<catalina.base>.</catalina.base>
</systemProperties>
<testFailureIgnore>
${sdit.testFailureIgnore}
</testFailureIgnore>
<suiteXmlFiles>
<suiteXmlFile>${sdit.testSuite}</suiteXmlFile>
</suiteXmlFiles>
<argLine>-Xmx1000M</argLine>
</configuration>
<version>2.4.2</version>
</plugin>
...
In Attachment I give you the jesult from JConsole (with surfire and without
surfire) ans Eclipse Memory Analyzer
------------------------------------------------------------------------------------
The bugreport in german:
Wir haben das Problem, dass der Speicherverbrauch der JVM wenn wir testng tests
mit dem surfire-plugin aus maven2 aufrufen nahezu linear ansteigt. Wir machen
Performencemessungen bei denen wir testng tests mit unterschiedlicher anzahl
threads ausführen lassen.
Nach längerer Suche konnten wir das Problem in
org.apache.maven.surefire.util.TeeStream entdecken. Die logausgeben welche
normalerweise auf die Konsole ausgegeben werden werden vom surfireplugin in
byteArrays geschrieben, welche nicht mehr freigegeben werden.
In unserem Beispiel hatten wir ~1500 TeeStream Objekte welche ~500MB Speicher
nutzen.
Scheinbar ist surfire nicht 100% Threadsafe und hat an diese Stelle ein
Speicherleak.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira