United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6812217 Base memory of MergeMem node violates assert during killing expanded AllocateArray node
JDK-6812217 : Base memory of MergeMem node violates assert during killing expanded AllocateArray node

Details
Type:
Bug
Submit Date:
2009-03-03
Status:
Closed
Updated Date:
2011-04-24
Project Name:
JDK
Resolved Date:
2011-04-24
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs14
Fixed Versions:
hs21 (b04)

Related Reports
Backport:
Relates:

Sub Tasks

Description
Server jvm could fail fail with
> # A fatal error has been detected by the Java Runtime Environment:
> #
> #  Internal Error (/export/users2/lab_ipfjbld/nightly/dev/r1767_08-12-22_0800/sources/hotspot/src/share/vm/opto/memnode.cpp:3793), pid=5400, tid=2305843017755292288
> #  Error: assert(Node::in_dump() || n == __null || n->bottom_type() == Type::TOP || n->adr_type() == TypePtr::BOTTOM || n->adr_type() == TypeRawPtr::BOTTOM || Compile::current()->AliasLevel() == 0,"must be a wide memory")


The reason of failure is that the assert happens because during iGVN optimization after macro expanding the base
memory of MergeMem node does not satisfy the assertion. This MergeMem node is located between AllocateArray and Initialize nodes.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/5a41a201d08c
                                     
2011-02-24
PUBLIC COMMENTS

The assert in MergeMemNode::memory_at() misses the case when address is TOP.
                                     
2011-02-24



Hardware and Software, Engineered to Work Together