Jenkinsで6つの個別のMavenプロジェクトをビルドするMavenプロジェクトがあります。私が直面している問題は、プロジェクトのビルドが失敗し、137エラーコードが表示されることです。
エラー:終了コード137でMaven JVMが予期せず終了しました
コンソールで同じMavenゴールを使用してプロジェクトを正常にビルドできましたが、Jenkinsでは失敗しました。 Jenkinsを再起動すると、問題を解決できます。
いくつかの静的配列リストがあります。これらのリストは、一部のテストケースで使用されます。これはメモリリークの可能性がありますか?
ビルドサーバーで同じ動作を実行していました。このエラーは、Mavenのメモリ設定に関連付けられていない私見です(つまり、MAVEN_OPTS
)ではなく、基盤となる(Linux)マシン自体(Jenkinsが実行されているマシン)のメモリを使用します。
(拒否された)Jenkinsの問題 https://jenkins-ci.org/issue/12035 は、この問題の詳細を示しています。
参考のために、ステータスコード137(128 + 9)は通常(Unixのフレーバーによって異なる場合があります)を意味します。シグナルの受信によりプロセスが終了したこと。この場合、シグナル9はSIGKILLであり、ブロックできないキルです。
この場合、基礎となるマシン/ OSはより多くの仮想メモリを必要とします。これは、必要に応じて物理メモリまたはスワップスペースを追加することで追加できます。
マシンの仮想メモリを増やしてみてください。
注意:
これは、Jenkinsの再起動が(一時的に)問題を修正する理由も説明しています。
メモリ設定の値を増やす必要があると思います-MAVEN_OPTS
Jenkinsマシンで、たとえば.
MAVEN_OPTS=-Xmx1.5G -XX:MaxPermSize=0.7G
Jenkins経由でMavenを実行すると、このエラーが発生しました。
ERROR: Maven JVM terminated unexpectedly with exit code 137
MAVEN_OPTSパラメーターに誤って「and」を入れました。
-Xmx1024m and -Xms1024m
次に、このエラーが発生しました:
Error: Could not find or load main class and
ERROR: Failed to launch Maven. Exit code - 1
「and」を削除した後、私はジェンキンスを再実行し、このエラーを受け取りました:
Java.lang.OutOfMemoryError: Java heap space
最後に、グローバルMAVEN_OPTSを使用してメモリを増やしました。
-Xmx4096m -Xms4096m
これにより問題が修正されました。したがって、これは記憶に関連しているようです。ただし、マシン/ VM関連の問題(上記の@boskoopなど)またはコンテナの問題(JVMがJenkins/Docker/etcで実行されている場合)の可能性があります。
マシンのリソースが不足しているため、プロセスは Linux OOM Killer によって強制終了されました。
マシンにメモリを追加するか、スワップを使用するか、プロセスのメモリフットプリントを削減します。これは、jvmのデフォルトXmxによって 直接的な影響を受ける であり、jvmが実際に必要とするものとはかけ離れています。
追加のJavaコマンドラインオプション
-Xmx256m -XX:MaxPermSize=512m
またはシステム変数を構成する
MAVEN_OPTS=-Xmx256m -XX:MaxPermSize=512m
MaxPermSizeは、Java 8+
同じエラーコードに遭遇しました。このエラーコードは、実際、Jenkins環境のJVMリソースの制約に関連しているようです。エラーが発生した後、もう一度ビルドを再実行して追加/異なる出力を取得できるかどうかを確認することをお勧めしますが、これは確かにビルドのどの部分がリソースの問題を引き起こしたかに依存します(私の原因ではMavenのダウンロードでした)。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000fb7cb000, 7331840, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 7331840 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /vagrant/args4Java/hs_err_pid10470.log
ERROR: Maven JVM terminated unexpectedly with exit code 1
Finished: FAILURE