maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Laurent Claisse (JIRA)" <j...@codehaus.org>
Subject [jira] (SUREFIRE-1147) Unbounded memory usage when running MANY tests
Date Mon, 16 Mar 2015 20:51:18 GMT

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

Laurent Claisse edited comment on SUREFIRE-1147 at 3/16/15 3:50 PM:
--------------------------------------------------------------------

I tried with both, doesn't change a thing. 
Not surprising because this issue is likely not due to a superficial regression, but to the
way the "pipeline" was designed (guessing): store everything in memory in case it's needed,
instead of streaming the output. This probably requires a refactor to fix.


was (Author: chtimi59):
I tried with both, doesn't change a thing. 
Not surprising because this issue is likely not due to a superficial regression, but to the
way the "pipeline" was designed (guessing): store everything in memory in case it's needed,
instead of streaming the output.

> Unbounded memory usage when running MANY tests
> ----------------------------------------------
>
>                 Key: SUREFIRE-1147
>                 URL: https://jira.codehaus.org/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
>         Attachments: surefire-allocation-traces.png, surefire-leak2.png, surefire-leak3.png,
surefire-leak.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
(v6.1.6#6162)

Mime
View raw message