You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Anton Ermolenko (Jira)" <ji...@apache.org> on 2020/07/11 09:28:00 UTC
[jira] [Created] (SUREFIRE-1818) Surefire buffers los messages in
memory instead of printing them out to the terminal which leads to OOM
error.
Anton Ermolenko created SUREFIRE-1818:
-----------------------------------------
Summary: Surefire buffers los 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
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.3.4#803005)