Search code examples
javamavensurefirejvm-crash

Build fails because of Maven Surefire


Has anybody an idea why I get this erromessage after running the tests of this package? I have already tried to give more memory but it did not suceed. Now I am really desperate to solve this problem. This project contains the client of the application, most tests need to run the GUI (Swing). Can there be any problem when not every thread is able to close the GUI properly?

[JENKINS] Recording test results
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 38:47.399s
[INFO] Finished at: Mon Jun 22 12:22:11 CEST 2015
[INFO] Final Memory: 58M/171M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project ferps2ClientProd: ExecutionException: java.lang.RuntimeException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Waiting for Jenkins to finish collecting data
[ERROR] Command was /bin/sh -c cd /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd && /usr/lib/jvm/java-7-oracle/jre/bin/java -Xmx1G org.apache.maven.surefire.booter.ForkedBooter /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire4816148809193217327tmp /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire_2554625457500993091404tmp
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project ferps2ClientProd: ExecutionException
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:117)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:178)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:136)
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
    at hudson.remoting.UserRequest.perform(UserRequest.java:121)
    at hudson.remoting.UserRequest.perform(UserRequest.java:49)
    at hudson.remoting.Request$2.run(Request.java:324)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.plugin.MojoFailureException: ExecutionException
    at org.apache.maven.plugin.surefire.SurefirePlugin.assertNoException(SurefirePlugin.java:262)
    at org.apache.maven.plugin.surefire.SurefirePlugin.handleSummary(SurefirePlugin.java:252)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:854)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:722)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 30 more
Caused by: org.apache.maven.surefire.booter.SurefireBooterForkException: ExecutionException
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkPerTestSet(ForkStarter.java:343)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:178)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:990)
    at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:824)
    ... 33 more
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd && /usr/lib/jvm/java-7-oracle/jre/bin/java -Xmx1G org.apache.maven.surefire.booter.ForkedBooter /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire4816148809193217327tmp /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire_2554625457500993091404tmp
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:188)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.runSuitesForkPerTestSet(ForkStarter.java:327)
    ... 36 more
Caused by: java.lang.RuntimeException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Command was /bin/sh -c cd /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd && /usr/lib/jvm/java-7-oracle/jre/bin/java -Xmx1G org.apache.maven.surefire.booter.ForkedBooter /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire4816148809193217327tmp /var/lib/jenkins/jobs/ferps2ClientProd/workspace/ferps2ClientProd/target/surefire/surefire_2554625457500993091404tmp
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:515)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:380)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter.access$300(ForkStarter.java:88)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter$2.call(ForkStarter.java:315)
    at org.apache.maven.plugin.surefire.booterclient.ForkStarter$2.call(ForkStarter.java:306)
    ... 4 more
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

This is the plugin-section from my pom:

<build>
<finalName>Ferpsclient</finalName>
<plugins>
  <plugin>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.12.1</version>
  </plugin>
  <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <configuration>
        <useManifestOnlyJar>false</useManifestOnlyJar>
        <useSystemClassLoader>false</useSystemClassLoader>
        <reuseForks>false</reuseForks>
        <skipTests>${skipTests}</skipTests>
        <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
        <forkCount>1C</forkCount>
        <argLine>-XX:MaxPermSize=1G</argLine>
        <argLine>-Xmx1G</argLine>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>2.17</version>
  </plugin>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
        <encoding>ISO-8859-1</encoding>         
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
  </plugin>
  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <!-- mainClass>at.felder.Application</mainClass-->
            </manifest>
            <manifestEntries>
                <Permissions>all-permissions</Permissions>
            </manifestEntries>

        </archive>
    </configuration>
  </plugin>
   <plugin>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <artifactSet>
                    <!-- includes>
                        <include>at.felder:ferps2Core:*</include>
                        <include>at.felder:ferps2API:*</include>
                    </includes-->
                </artifactSet>
            </configuration>
        </execution>
    </executions>
  </plugin>
</plugins>


Solution

  • You should recraft your argLine tag in the SureFire plugin config to look something like this:

    <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
    

    Essentially, you need to combine both arguments into one tag and increase the allocation.