JDK-7147464 : Java crashed while executing method with over 8k of dneg operations
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6u4,7
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: x86
  • Submitted: 2012-02-21
  • Updated: 2014-07-21
  • Resolved: 2012-07-28
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.
JDK 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
Java crashed while executing method with over 8k of dneg or fneg operations with -Xcomp -server -XX:-DontCompileHugeMethods options on all x86-platforms.

Next two tests failed:
cvm/bytecode/bytecode/dneg 
cvm/bytecode/bytecode/fneg

Jstack output attached to CR.
Issue can be reproduced with all java 7 updates starting from JDK 1.7.0 b148 and all java 6 updates starting from JDK 1.6.0_04 b05.

Issue was not found before because cvm test were added recently.
See comments for more details.

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/611e8a669a2c
14-08-2012

EVALUATION verified with provided command
01-08-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/611e8a669a2c
27-07-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-emb/hotspot/rev/611e8a669a2c
18-07-2012

EVALUATION [removed]
24-05-2012

EVALUATION Stack overflow in compiler thread because of very deep recursion (test passed with 5Mb stack -XX:CompilerThreadStackSize=5000). May be we need to replace recursion in remove_globally_dead_node(). But it is not P2. Thread 1 (Thread 0xb33ffb70 (LWP 17333)): #0 0xb7189dc5 in Unique_Node_List::remove(Node*) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #1 0xb71ea344 in PhaseIterGVN::remove_globally_dead_node(Node*) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #2 0xb71ea47f in PhaseIterGVN::remove_globally_dead_node(Node*) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so ... #6331 0xb71ea47f in PhaseIterGVN::remove_globally_dead_node(Node*) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6332 0xb71ea47f in PhaseIterGVN::remove_globally_dead_node(Node*) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6333 0xb7107902 in PhaseIdealLoop::build_and_optimize(bool, bool) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6334 0xb6e78373 in PhaseIdealLoop::PhaseIdealLoop(PhaseIterGVN&, bool, bool) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6335 0xb6e75b65 in Compile::Optimize() () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6336 0xb6e76afb in Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so #6337 0xb6df2a76 in C2Compiler::compile_method(ciEnv*, ciMethod*, int) () from /export/jdk/jdk1.7.0_04/jre/lib/i386/server/libjvm.so
21-02-2012

WORK AROUND -XX:CompilerThreadStackSize=5000
21-02-2012