[ https://issues.apache.org/jira/browse/SUREFIRE-1818?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17792452#comment-17792452 ]
Michael Osipov commented on SUREFIRE-1818: ------------------------------------------ Is this still the case? If yes, can you easily provide a sample project? > Surefire buffers log messages in memory instead of printing them out to the > terminal which leads to OOM error. > -------------------------------------------------------------------------------------------------------------- > > Key: SUREFIRE-1818 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1818 > Project: Maven Surefire > Issue Type: Bug > Affects Versions: 2.22.1 > Reporter: Anton Ermolenko > Priority: Major > Fix For: waiting-for-feedback > > Attachments: image-2020-07-11-18-57-41-164.png > > > For unknown reason when running tests Surefire version 2.22.1 buffers logging > messages in memory in {{ConcurrentLinkedQueue}} which leads to > OutOfMemoryError when amount of logging messages is sufficiently large. If > amount of memory is big enough to hold those messages, Surefire will print > those log messages after running the tests. > Downgrading to 2.18.1 resolves the issue and log messages appear on the > terminal without delay. > While it's printing those messages the following stack trace can be observed: > {code:java} > "main" #1 prio=5 os_prio=0 tid=0x00007f3ff400b000 nid=0x30adf runnable > [0x00007f3ffb3d7000] > java.lang.Thread.State: RUNNABLE > at java.io.FileOutputStream.writeBytes(Native Method) > at java.io.FileOutputStream.write(FileOutputStream.java:326) > at > java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) > at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) > - locked <0x00000005cc251490> (a java.io.BufferedOutputStream) > at java.io.PrintStream.write(PrintStream.java:482) > - locked <0x00000005cc251470> (a java.io.PrintStream) > at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) > at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) > at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) > - locked <0x00000005cc2515b0> (a java.io.OutputStreamWriter) > at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185) > at java.io.PrintStream.write(PrintStream.java:527) > - locked <0x00000005cc251470> (a java.io.PrintStream) > at java.io.PrintStream.print(PrintStream.java:583) > at > org.fusesource.jansi.FilterPrintStream.write(FilterPrintStream.java:99) > at > org.fusesource.jansi.FilterPrintStream.write(FilterPrintStream.java:107) > at > org.fusesource.jansi.FilterPrintStream.print(FilterPrintStream.java:156) > at > org.fusesource.jansi.FilterPrintStream.println(FilterPrintStream.java:231) > - locked <0x00000005cc22b6d0> (a org.fusesource.jansi.AnsiConsole$2) > at org.slf4j.impl.SimpleLogger.write(SimpleLogger.java:318) > at org.slf4j.impl.SimpleLogger.log(SimpleLogger.java:295) > at org.slf4j.impl.SimpleLogger.warn(SimpleLogger.java:522) > at org.apache.maven.cli.logging.Slf4jLogger.warn(Slf4jLogger.java:74) > at > org.apache.maven.plugin.surefire.log.PluginConsoleLogger.warning(PluginConsoleLogger.java:92) > at > org.apache.maven.plugin.surefire.booterclient.ForkStarter$CloseableCloser.run(ForkStarter.java:203) > at > org.apache.maven.surefire.shade.org.apache.maven.shared.utils.cli.CommandLineUtils$1.call(CommandLineUtils.java:282) > at > org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:614) > at > org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:282) > at > org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245) > at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1183) > at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:1011) > at > org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:857) > at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) > at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) > at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:954) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:192) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) > {code} > Dominator tree of produced heap dump: > !image-2020-07-11-18-57-41-164.png|width=581,height=86! > > Heap dump can be downloaded > [here|https://drive.google.com/file/d/1LL2ZRmUmIb708HUFC1wNfeRDMOtIwKWz/view?usp=sharing] -- This message was sent by Atlassian Jira (v8.20.10#820010)