2017-02-17 36 views
1

У меня есть Java-проект с тысячами тестов,Maven построить сбой при выполнении тестов из-за JVM аварии

Когда я бегу испытания она заканчивается следующим образом:

$ mvn surefire:test 
. . . 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 01:49 h 
[INFO] Finished at: 2017-02-17T06:29:55-05:00 
[INFO] Final Memory: 13M/921M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test (default-cli) on project Mine: ExecutionException; nested exception is java.util.concurrent.ExecutionException: java.lang.RuntimeException: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ? 
[ERROR] Command was/bin/sh -c cd /home/projects/mine && /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el7_3.x86_64/jre/bin/java -jar /home/projects/mine/target/surefire/surefirebooter5661758071622971420.jar /home/projects/mine/target/surefire/surefire7221142682471689181tmp /home/projects/mine/target/surefire/surefire_96350455888867423114tmp 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[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 

Моя конфигурация Maven выглядит следующим образом:

$ mvn -version 
Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-13T16:10:27-04:00) 
Maven home: /opt/maven 
Java version: 1.7.0_131, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el7_3.x86_64/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.10.0-514.6.1.el7.x86_64", arch: "amd64", family: "unix" 

Я пытался обновить Maven или повторно выполнять тесты с -X вариант, но не нашел ничего особенного. Любая идея, как отлаживать/подходить к этой проблеме?

Обновление Оказалось, что проблема была связана с использованием более новой версии некоторого собственного кода. Мне пришлось заменить файлы .so файлов для более старой версии lib, чтобы исправить эту проблему.

+0

Concur с @khmarbaise. Попробуйте обновить версию плагина, 2.16 - это старость (2013!), И с тех пор было сделано много исправлений. Можете полностью исправить проблему или, по крайней мере, дать вам больше информации об истинности проблемы. – user944849

+0

Это не версия плагина, так как мои коллеги, которые работают в одном проекте, не имеют этой проблемы. – bachr

+0

Хорошо, начните с пустого локального репо на машине, имеющего проблему. Один или несколько артефактов могут быть повреждены, я видел это раньше. – user944849

ответ

0

Попробуйте использовать это в своей заглушке maven. Может быть, ваше тестирование случае нужно много памяти, чтобы изменить это, если по-прежнему происходит крэш

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

И в конце концов, будет выглядеть следующим образом

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.x</version> 
    <configuration> 
     <forkMode>once</forkMode> 
    <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine> 
    </configuration> 
</plugin> 
+1

Не используйте такие старые версии [maven-surefire-plugin] (https://maven.apache.org/surefire/maven-surefire-plugin/) – khmarbaise

+0

MY плохо добавил 2.x для не смущающих людей – Gatusko

+0

I уже пробовал с настройками maven для увеличения памяти, но это не помогло – bachr

Смежные вопросы