ERROR: Maven JVM terminated unexpectedly with exit code 134 でビルド失敗

1,083 views
Skip to first unread message

Yusuke Yamamoto

unread,
Nov 24, 2010, 9:44:26 PM11/24/10
to huds...@googlegroups.com
こんにちは。山本です。
最近 "ERROR: Maven JVM terminated unexpectedly with exit code 134" というエラーでビルドが失敗する現象に悩まされています。
大抵 Hudson を再起動して人生を見つめ直して貰うと復旧しますがまた数回ビルドすると、または起動したまま時間が経過すると再発生する傾向にあります。
似た "Maven JVM terminated unexpectedly with exit code" でバグを検索する似たものが見つかりますが exit code が 0、または 143 と異なります。
http://issues.hudson-ci.org/secure/QuickSearch.jspa?searchString=%22Maven%20JVM%20terminated%20unexpectedly%20%22&

環境は Mac OSX Snow Leopard 10.6.4, VM のバージョンは
----------
$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-307, mixed mode)
----------
です。
実際の環境のエラーメッセージは以下でも確認できます。
http://twitter4j.org/hudson/job/Twitter4J/1058/console

HUDSON-5144 によると Windows 環境でビルド中にログアウトした際に発生するので -Xrs をつけると発生しなくなるというコメントがありますが、Mac なのでそれには該当しません。
# 念のためにつけてみましたがやはり再現しました。それにスレッドダンプがとれなくなってしまうので -Xrs はつけたくないですね・・・

似た現象に遭遇している方、またはトラブルシューティングのポイントが分かる方いらっしゃいましたらコメントをいただければ幸いです。

以上よろしくお願いします。
--
Yusuke Yamamoto
yus...@mac.com

このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/

Yusuke Yamamoto

unread,
Nov 24, 2010, 9:53:03 PM11/24/10
to huds...@googlegroups.com
大事なことを忘れていました。Hudson のバージョンは 1.386 です。
また以前のバージョンでは発生しておらず、とあるバージョンから発生し始めました。
最近誤ってビルド履歴を消してしまったのでどのバージョンから発生しはじめたのかは残念ながらわかりません。
--
Yusuke Yamamoto
yus...@mac.com

このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/

Takayoshi Kimura

unread,
Nov 25, 2010, 7:55:17 AM11/25/10
to huds...@googlegroups.com
2010/11/25 Yusuke Yamamoto <yus...@mac.com>:

>> 最近 "ERROR: Maven JVM terminated unexpectedly with exit code 134" というエラーでビルドが失敗する現象に悩まされています。

134ならABRTの終了コードなのでたぶんプロセスクラッシュでしょう。元の原因はSEGVとかだと思います。カレントディレクトリにクラッシュレポートとかコアダンプとか出てるんじゃないでしょうか。

Regards,
Takayoshi

Yusuke Yamamoto

unread,
Nov 25, 2010, 8:19:44 AM11/25/10
to huds...@googlegroups.com
木村さん

ありがとうございます。
~/.hudson/jobs/Twitter4J/workspace/ に hs_err_pid ほにゃららは見つかりませんでしたが助言で
ピンときて syslog を tail しながら現象を再現させたところ以下のようなログがでていました。
--------------
Nov 25 21:59:17 macmini com.apple.ReportCrash.Root[3736]: 2010-11-25 21:59:17.966 ReportCrash[3736:1407] Saved crash report for java[3732] version 1.0 (1.0) to /Library/Logs/DiagnosticReports/java_2010-11-25-215917_localhost.crash
--------------

Mac はカレントディレクトリではなくて /Library/Logs/DiagnosticReports/ にログが吐かれるんですね!
クラッシュレポートを添付します -> java_2010-11-25-215917_localhost.crash

クラッシュしたスタックによると libSystem.B.dylib の中で落ちているようです。
--------------
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libSystem.B.dylib 0x00007fff82e7a3d6 __kill + 10
1 libSystem.B.dylib 0x00007fff82f1a972 abort + 83
2 com.apple.LaunchServices 0x00007fff80a31c9c GetOurLSSessionIDInit() + 298
3 libSystem.B.dylib 0x00007fff82e447fa pthread_once + 95
4 com.apple.LaunchServices 0x00007fff80a31b6a GetOurLSSessionAttributeBits() + 23
5 com.apple.LaunchServices 0x00007fff80a31b3b NormalizeLSSessionID(LSSessionID) + 28
6 com.apple.LaunchServices 0x00007fff80a30c10 _LSApplicationCheckIn + 44
7 com.apple.HIServices 0x00007fff85e473ce _RegisterApplication + 1086
8 com.apple.HIServices 0x00007fff85e4e926 SetApplicationIsDaemon + 90
9 libawt.jnilib 0x00000001150a9884 +[AWTStarter startAWT:] + 902
10 libawt.jnilib 0x000000011506d625 -[CPerformer perform] + 93
11 com.apple.Foundation 0x00007fff811f563b __NSThreadPerformPerform + 219
12 com.apple.CoreFoundation 0x00007fff8734be91 __CFRunLoopDoSources0 + 1361
13 com.apple.CoreFoundation 0x00007fff8734a089 __CFRunLoopRun + 873
14 com.apple.CoreFoundation 0x00007fff8734984f CFRunLoopRunSpecific + 575
15 java 0x0000000100004696 0x100000000 + 18070
16 java 0x0000000100003eee 0x100000000 + 16110
17 java 0x00000001000017b4 0x100000000 + 6068
--------------

スタックに出てくるキーワードでググったところ以下のスレッドが見つかりました。
かなりスタックが似ています。
http://discussions.apple.com/thread.jspa?messageID=10067122
スクリーンシェアリング(Mac内蔵のVNCサーバ)の問題っぽいのでスクリーンシェアリングをoffにしてみろという話になっていますが、スクリーンシェアリングをoffにしても再現しました。
他にも
・-d32 をつけて32bitで起動
・-server をつけて Server VM を選択
・AWTStarter というのの延長上ででているので -Djava.awt.headless=true で起動(普段は -Djava.awt.headless=false)
を試してみましたが再現します。

OSのバージョンが .1 だけ古いので OS アップデートして試してみます。
--
Yusuke Yamamoto
yus...@mac.com

このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/

java_2010-11-25-215917_localhost.crash

Yusuke Yamamoto

unread,
Nov 25, 2010, 9:23:32 AM11/25/10
to huds...@googlegroups.com
OS を 10.6.5 へアップデートしてから10回ほどビルドしてみましたが再現しなくなりました。
http://twitter4j.org/hudson/job/Twitter4J/buildTimeTrend

ひとまずこれで様子を見てみたいと思います。ありがとうございました。
--
Yusuke Yamamoto
yus...@mac.com

このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/

java_2010-11-25-215917_localhost.crash

Kohsuke Kawaguchi

unread,
Dec 15, 2010, 3:14:32 PM12/15/10
to huds...@googlegroups.com
時々あちこちでexit code 134問題を目にしていたのですが、恥ずかしながら今の今まで問題の原因を理解していませんでした。

プロセスが死んだ時にsyslogに記録が残るのはLinuxも同じですか?それともMacだけでしょうか。

#これはぜひ英語に訳して公開しなければ...

2010年11月25日5:19 Yusuke Yamamoto <yus...@mac.com>:

--
Kohsuke Kawaguchi

Takayoshi Kimura

unread,
Dec 15, 2010, 7:13:40 PM12/15/10
to huds...@googlegroups.com
2010/12/16 Kohsuke Kawaguchi <k...@kohsuke.org>:

> 時々あちこちでexit code 134問題を目にしていたのですが、恥ずかしながら今の今まで問題の原因を理解していませんでした。
>
> プロセスが死んだ時にsyslogに記録が残るのはLinuxも同じですか?それともMacだけでしょうか。

Mac以外ならhs_err_pid%p.logファイルを探す、で良いのではないでしょうか。もしカレントディレクトリに出力ができないとかそういう場合は-XX:ErrorFile=/path/to/hs_err_pid%p.logとか付与しておけばよいでしょう。

プロセスクラッシュ時にsyslog吐くというのはLinux一般というわけではなく、ディストリビューション次第(クラッシュレポートツール次第)だと思います。Fedora/RHEL/CentOSだとABRTというクラッシュレポートツールがsyslogにログ吐くと思います。

http://fedoraproject.org/wiki/Features/ABRT

F14だと出力はこんな感じです。

> Dec 16 09:07:49 localhost abrt[13048]: saved core dump of pid 13027 (/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/java) to /var/spool/abrt/ccpp-1292458067-13027.new/coredump (189628416 bytes)

Regards,
Takayoshi
http://d.hatena.ne.jp/nekop/

Yusuke Yamamoto

unread,
Dec 15, 2010, 9:46:29 PM12/15/10
to huds...@googlegroups.com
山本です。

その後ですが、OSやJVMアップデート後もしばらくしたら発生するようになってしまいました。
さらに調べたところ、headlessモードで発生する既知の問題で、Appleも把握しているそうです。
http://www.techienuggets.com/Comments?tx=115123

-Djava.awt.headless=true (またはオプションなし)でひとまず回避することができました。

#これはぜひ英語に訳して公開しなければ...
英語でも書いておきました。
http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html
--
山本 裕介
yus...@mac.com

このメールは: [x] ブログ/Twitterへ転載可能 [ ] 私信
Twitter でフォロー : http://twitter.com/yusukey
blogを購読: http://samuraism.jp/

Reply all
Reply to author
Forward
0 new messages