You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Balázs Németh (Jira)" <ji...@apache.org> on 2022/02/10 00:47:00 UTC

[jira] [Commented] (SUREFIRE-1147) Unbounded memory usage when running MANY tests

    [ https://issues.apache.org/jira/browse/SUREFIRE-1147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17489889#comment-17489889 ] 

Balázs Németh commented on SUREFIRE-1147:
-----------------------------------------

* JUnit 4.x
 * yes, the 'surefire-reports' folder is almost 5GB coming from almost 900 test classes with 10k+ unit tests
 * yes, forkCount is 0.75C

 

> Unbounded memory usage when running MANY tests
> ----------------------------------------------
>
>                 Key: SUREFIRE-1147
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1147
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.18.1
>         Environment: win7, jdk 8u25, mvn 3.2.5
>            Reporter: Laurent Claisse
>            Assignee: Tibor Digana
>            Priority: Major
>             Fix For: Backlog
>
>         Attachments: surefire-allocation-traces.png, surefire-leak.png, surefire-leak2.png, surefire-leak3.png
>
>
> I'm writing concurrency tests, checking that this thing is reproducible, that other thing isn't, and so on. So i repeat tests MANY times like 100_000 (to reproduce the leak, the test project is here: https://github.com/vandekeiser/parallel-stream-fork-join-pool)
> I see in VisualVM that the culprit is WrappedReportEntry, which indirectly holds references to lots of byte[] and char[] (allocation traces and heap dump pics are included in attachment)
> I forked and patched maven-surefire-common, and that makes the leak go. I had to replace WrappedReportEntry.original by a singleton fake ReportEntry. 
> Bebefore that i had replaced Utf8RecodingDeferredFileOutputStream.deferredFileOutputStream by a NullOutputStream and the leak was lesser but still here.
> My fork of maven-surefire-common is there: https://github.com/vandekeiser/maven-surefire/tree/master/maven-surefire-common.
> It IS a patch so i checked the patch checkbox in the issue reporter, but it is NOT intended to be distributed of course since it is very brutal and basic.
> Also in my test project i explicitly deactivated reporting, but that doesn't make the reporting leak go away at all:
> <disableXmlReport>true</disableXmlReport>
> <printSummary>false</printSummary>



--
This message was sent by Atlassian Jira
(v8.20.1#820001)