山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

EclipseでJBossやTomcatを起動するとJVMがクラッシュする

題名のような現象はよく起こるのではないかと思いますが

なぜか事例報告があまり見当たりません。

オイシックス社内では複数事例があります。


【環境】

Windows 32bit
eclipse3.5~4.2 JavaEE
Tomcat6
JBoss4.2
JRE6(現在のリビジョン33でも発生)
Struts2.1
Spring2.5
Hibernate3.2,3.3


【状況】

eclipseのserverにTomcatJBossを登録。

起動中にJVMがクラッシュ。

コンソールに以下のようなメッセージ。
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#

JBossのbin以下にhs_err_pidXXXX.logというファイルができている。

以下のような内容。


# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (c1_Optimizer.cpp:271), pid=6788, tid=3452
# guarantee(x_compare_res != Constant::not_comparable) failed: incomparable constants in IfOp
#
# JRE version: 6.0_33-b05
# Java VM: Java HotSpot(TM) Client VM (20.8-b03 mixed mode windows-x86 )
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp


【対応策】

サーバー定義を右クリック・open

runtime environmentでJREでなくJDKを指定。

launch configurationのArgumentsタブ内 VM argumentsに

「-server」を追加。


JITコンパイラのクライアント版の不具合のようです。

Windows版のJREにはサーバーJITコンパイラがないので

JDKを使う必要があります。