United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4964653 : VM/C2 crashes when running a java program on amd64 (and sparc v9)

Details
Type:
Bug
Submit Date:
2003-12-05
Status:
Resolved
Updated Date:
2004-09-21
Project Name:
JDK
Resolved Date:
2003-12-16
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P1
Resolution:
Fixed
Affected Versions:
5.0
Fixed Versions:
1.4.2_05 (05)

Related Reports
Backport:
Relates:

Sub Tasks

Description
When running pack200 on a test jar the VM segmentation faults with no
reason, and there is no hs_err*.log. Tried several tricks but no dice.
It appears the compilation thread seems to have gone into an endless 
loop. Tested with option -Xint and it works correctly.


Here is the scenario
sqe-jpi-06 /tmp> /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/bin/java -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput javax.pack.Driver -pack -debug.verbose=0 -pack.effort=4 /tmp/foo.pack golden2.jar
Segmentation fault
sqe-jpi-06 /tmp> cat hotspot.log 
sqe-jpi-06 /tmp> ls -l hotspot.log
-rw-rw-r--    1 ksrini   green           0 2003-12-05 18:18 hotspot.log
sqe-jpi-06 /tmp> /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/bin/java -version
java version "1.5.0-internal"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-internal-b99)
Java HotSpot(TM) 64-Bit Server VM (build 20031121214924.jcoomes.baseline, mixed mode)

With b30 everything is fine.
sqe-jpi-06 /tmp> /tmp/j2re1.5.0/bin/java -version
java version "1.5.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta-b30)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0-beta-b30, mixed mode)
sqe-jpi-06 /tmp> /tmp/j2re1.5.0/bin/java  -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput javax.pack.Driver -pack -debug.verbose=0 -pack.effort=4 /tmp/foo.pack golden2.jar

The above worked fine.....

The stack trace showing the compilation thread the last 20.

(gdb) where -20
#60159 0x0000002a95fa437c in PhaseIterGVN::transform(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60160 0x0000002a95d60bd9 in ConvL2INode::Ideal(PhaseGVN*, int) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60161 0x0000002a95fa44ad in PhaseIterGVN::transform_old(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60162 0x0000002a95fa437c in PhaseIterGVN::transform(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60163 0x0000002a95d60bd9 in ConvL2INode::Ideal(PhaseGVN*, int) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60164 0x0000002a95fa44ad in PhaseIterGVN::transform_old(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60165 0x0000002a95fa437c in PhaseIterGVN::transform(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60166 0x0000002a95d60bd9 in ConvL2INode::Ideal(PhaseGVN*, int) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60167 0x0000002a95fa44ad in PhaseIterGVN::transform_old(Node*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60168 0x0000002a95fa413d in PhaseIterGVN::optimize() ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60169 0x0000002a95d442f3 in Compile::Optimize() ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60170 0x0000002a95d415a4 in Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, int) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60171 0x0000002a95cf311d in C2Compiler::compile_method(ciEnv*, ciMethod*, int) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60172 0x0000002a95d494f8 in CompileBroker::invoke_compiler_on_method(CompileTask*)
    ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60173 0x0000002a95d48f3d in CompileBroker::compiler_thread_loop() ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60174 0x0000002a96025ea9 in compiler_thread_entry(JavaThread*, Thread*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60175 0x0000002a9602121e in JavaThread::run() ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60176 0x0000002a95f7b9ab in _start(Thread*) ()
   from /.automount/sqesvr-nfs/root/global/nfs/deployment2/karim/JDK/amd64-linux/j2sdk1.5.0/jre/lib/amd64/server/libjvm.so
#60177 0x0000002a95673c26 in pthread_start_thread () from /lib64/libpthread.so.0
#60178 0x0000002a9594fc95 in thread_start () from /lib64/libc.so.6T


                                    

Comments
SUGGESTED FIX

Add a dead loop check into the ConvL2INode::Ideal() method.

###@###.### 2003-12-08
                                     
2003-12-08
EVALUATION

Recursion during addL->convL2I ==> convL2I->addI conversion.

###@###.### 2003-12-08

A dead loop check is missed in the ConvL2INode::Ideal() method.
I missed this one when fixed 4951940.

###@###.### 2003-12-08
                                     
2003-12-08
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_05
generic
tiger-beta

FIXED IN:
1.4.2_05
tiger-beta

INTEGRATED IN:
1.4.2_05
tiger-b32
tiger-beta


                                     
2004-09-22



Hardware and Software, Engineered to Work Together