Jochen Hebbrecht created SUREFIRE-1509:
------------------------------------------
Summary: Surefire reports randomly tests failing when forkCount=1
and reuseForks=true (default)
Key: SUREFIRE-1509
URL: https://issues.apache.org/jira/browse/SUREFIRE-1509
Project: Maven Surefire
Issue Type: Bug
Affects Versions: 2.21.0
Environment: - JVM 9.0.4 (Oracle implementation)
- tests are running in a Docker container, hosted on an EC2 instance (using ECS)
Reporter: Jochen Hebbrecht
Hi,
We are currently running our tests on a Jenkins Docker slave with JVM 9.0.4.
We sometimes get the following error:
{code}
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on
project infrastructure: There are test failures.
[ERROR]
[ERROR] Please refer to
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure/target/surefire-reports
for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump,
[date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] The forked VM terminated without properly saying goodbye. VM crash or
System.exit called?
[ERROR] Command was /bin/sh -c cd
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure
&& /home/jenkins/tools/hudson.model.JDK/Oracle_JDK9.0.4/jdk-9.0.4/bin/java
-jar
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure/target/surefire/surefirebooter17596563106997267184.jar
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure/target/surefire
2018-03-29T07-17-04_821-jvmRun1 surefire4958487791742188143tmp
surefire_05065886537426794674tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 137
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The
forked VM terminated without properly saying goodbye. VM crash or System.exit
called?
[ERROR] Command was /bin/sh -c cd
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure
&& /home/jenkins/tools/hudson.model.JDK/Oracle_JDK9.0.4/jdk-9.0.4/bin/java
-jar
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure/target/surefire/surefirebooter17596563106997267184.jar
/home/jenkins/workspace/s-slaves-with-nfs-workspace-KSX7WOVQKBXQS2AOK25P73Y44WD22SHRHPXX6YF6DAMF7VIHGYCQ/infrastructure/target/surefire
2018-03-29T07-17-04_821-jvmRun1 surefire4958487791742188143tmp
surefire_05065886537426794674tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 137
[ERROR] at
org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:671)
[ERROR] at
org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:533)
[ERROR] at
org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:278)
[ERROR] at
org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:244)
[ERROR] at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1149)
[ERROR] at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:978)
[ERROR] at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:854)
[ERROR] at
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
[ERROR] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
[ERROR] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
[ERROR] at
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
[ERROR] at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
[ERROR] at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
[ERROR] at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
[ERROR] at
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
[ERROR] at
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
[ERROR] at
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
[ERROR] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
[ERROR] at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
[ERROR] at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
[ERROR] at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
[ERROR] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:564)
[ERROR] at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
[ERROR] at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
[ERROR] at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
[ERROR] at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
{code}
The maven plugin is configured as:
{code}
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<excludes>
<exclude>src/integration-tests/java/**</exclude>
</excludes>
</configuration>
</plugin>
{code}
If we switch to Java 8 as JVM on the Jenkins slaves, we cannot reproduce this
problem.
If we run the tests on our local PC, we cannot reproduce this problem.
When we look at the Jenkins slave to the dumpstream file, we noticed the
following:
{code}
$ cat 2018-03-29T07-17-16_684.dumpstream
# Created on 2018-03-29T07:17:16.702
WARNING: An illegal reflective access operation has occurred
# Created on 2018-03-29T07:17:16.715
WARNING: Illegal reflective access by
org.springframework.cglib.core.ReflectUtils$1
(file:/home/jenkins/.m2/repository/org/springframework/spring-core/5.0.4.RELEASE/spring-core-5.0.4.RELEASE.jar)
to method
java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
# Created on 2018-03-29T07:17:16.727
WARNING: Please consider reporting this to the maintainers of
org.springframework.cglib.core.ReflectUtils$1
# Created on 2018-03-29T07:17:16.739
WARNING: Use --illegal-access=warn to enable warnings of further illegal
reflective access operations
# Created on 2018-03-29T07:17:16.752
WARNING: All illegal access operations will be denied in a future release
# Created on 2018-03-29T07:17:27.578
Killed
{code}
If we add forkCount=0 to the configuration, we cannot reproduce the problem,
but then we're actually hiding it of course.
Can you help us indicating what we can do to investigate this problem? More
logging? Which steps to debug? Etc, etc, ...
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)