United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7147464 Java crashed while executing method with over 8k of dneg operations
JDK-7147464 : Java crashed while executing method with over 8k of dneg operations

Details
Type:
Bug
Submit Date:
2012-02-21
Status:
Resolved
Updated Date:
2013-04-30
Project Name:
JDK
Resolved Date:
2012-07-28
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
6u4,7
Fixed Versions:
hs24 (b18)

Related Reports
Backport:
Backport:
Backport:
Backport:
Relates:
Relates:

Sub Tasks

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
WORK AROUND

-XX:CompilerThreadStackSize=5000
                                     
2012-02-21
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
                                     
2012-02-21
EVALUATION

[removed]
                                     
2012-05-24
EVALUATION

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

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

verified with provided command
                                     
2012-08-01
EVALUATION

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



Hardware and Software, Engineered to Work Together