JDK-4964653 : VM/C2 crashes when running a java program on amd64 (and sparc v9)
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 5.0
  • Priority: P1
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2003-12-05
  • Updated: 2004-09-21
  • Resolved: 2003-12-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
1.4.2_05 05Fixed
Related Reports
Relates :  
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
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
22-09-2004

SUGGESTED FIX Add a dead loop check into the ConvL2INode::Ideal() method. ###@###.### 2003-12-08
08-12-2003

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
08-12-2003