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)

Reply via email to