2017-10-10 5 views
3

タイトルごと:私はJenkinsのスレーブから自動化されたMavenテストを実行しようとしています。これはコンテナ化されており、1週間これを戦っています。これは4GのRAMを搭載したAWSインスタンスと同じように動作しますが、制限のない(RAMおよびCPU上の)コンテナでは、以下のようなエラーで失敗します。それが実行される唯一の状況は、Failsafeプラグインのフォークを無効にするときですが、これは今後のオプションではありません。Docker-> Maven-> Failsafe-> Surefire起動フォークが失敗しました。「フォークしたVMは、さよならを言わずに終了しました.VMクラッシュまたはSystem.exitが呼び出されましたか?

私は、Googleを使用して見つけた可能性のあるあらゆる種類のJava/Maven/Failsafe/Surefireオプションを試しましたが、グローバルなJava-Xmxオプションの追加やpom.xmlのプラグインごとの追加はできません。

誰もこれを正常に実行しましたか?

これは扱いが簡単であるはずですが、今は私の頭からすべての髪の毛を引っ張ってきたと思います。私はまだ敗北を認めたいという考えが嫌いです。助けてください!

フェイルセーフ-summary.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<failsafe-summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-sure 
fire-plugin/xsd/failsafe-summary.xsd" result="254" timeout="false"> 
    <completed>0</completed> 
    <errors>0</errors> 
    <failures>0</failures> 
    <skipped>0</skipped> 
    <failureMessage>org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM cras 
h or System.exit called? 
Command was /bin/sh -c cd /var/lib/jenkins/workspace/ui_acceptance_test_chrome_docker_freestyle &amp;&amp; /usr/lib/jvm/java-1.8-openjdk/jre/bin/ja 
va -Dfile.encoding=UTF-8 -jar /var/lib/jenkins/workspace/ui_acceptance_test_chrome_docker_freestyle/target/surefire/surefirebooter81206735832436906 
05.jar /var/lib/jenkins/workspace/ui_acceptance_test_chrome_docker_freestyle/target/surefire 2017-10-10T15-02-35_189-jvmRun1 surefire59539140137458 
58339tmp surefire_03559885505222114015tmp 
Error occurred in starting fork, check output in log 
Process Exit Code: 1 
     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:686) 
     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:535) 
     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:280) 
     at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245) 
     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1124) 
     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java:954) 
     at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:832) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
     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:116) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
     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) 
</failureMessage> 
</failsafe-summary> 

2017-10-10T15-02-35_189-jvmRun1.dump:

# Created on 2017-10-10T15:02:36.303 
Killing self fork JVM. Maven process died. 

これらのプラグインが失敗した後に作成したダンプです

+0

この問題の原因と解決方法はすでに見つかりましたか?私も同様の問題に遭遇しました - https://stackoverflow.com/questions/46831762/maven-build-and-maven-failsafe-plugin-the-forked-vm-terminated-without-properl – alexanoid

+1

残念ながら、 t。私はこれがメモリ関連かもしれないと思うが、プラグインとフォークの過多を使っているJavaがどのようにメモリを管理しているのか、そして-Xmxのようなオプションとどのように関連するのかを実際に理解する人には会っていない。(プラグインごとに??)。最近別の仕事に移動しなければならなかった...今のところ。 – mironq

答えて

8

Surefire 1.18.1にダウングレードしてみてください。私は今夜​​この問題に遭遇し、それに数時間を費やしましたが、これまでのところ、Surefireの新しいビルドがDockerで壊れてしまうのはなぜか分かりません。

*更新*

私はアルパインのlinuxの問題を抱えていたが、UbuntuのやDebianベースの画像を使用した場合、すべてが大丈夫でした。したがって、1.21以内のものは、特定のオペレーティングシステムとの互換性を破壊しています。

+0

アップ投票、私は2.18.1にダウングレードしただけですが(...実際にあなたが意味していたものだと思います) – Lars

+0

これは失敗したビルドについて私にとっても(確実に2.18.1にダウングレードする) CircleCIで –

+0

2.20作品、2.21はありません。バグレポートhttps://issues.apache.org/jira/browse/SUREFIRE-1444も同様ですが、いくつかの詳細を追加します。 –

関連する問題