JDK-6711117 : Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs13,5.0u8
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-06-05
  • Updated: 2011-03-08
  • Resolved: 2011-03-08
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 6 JDK 7 Other
6u18Fixed 7Fixed hs16Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
64bit fastdebug server jvm fails with assertion

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/opto/compile.cpp:1270), pid=17619, tid=1084266816
#  Error: assert(flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (13.0-b01-fastdebug compiled mode linux-amd64 compressed oops)

in comp mode in case both AggressiveOpts CompressedOops are enabled.

No failure in case AggressiveOpts or CompressedOops are disabled.

The problem started to appear from HS13-b01 (jdk7b27)

Comments
PUBLIC COMMENTS Problem: The assert is triggered by the eliminate AutoBox code which asks an alias type of "NULL+off" address type. It is caused by the memory node processing during IGVN before its control edge which checks the address's nullness is processed. Solution: Delay a memory node transformation if its control or address on IGVN worklist. Add the assert into LoadNode::Ideal() method for the eliminate AutoBox code that the address base type is not NULL pointer. Also add conditions into LoadNode::Value() method for the AutoBox code that the address is AddP node and base type is not NULL pointer. Use replace_node() instead of subsume_node() during macro nodes expansion to put users of the old node on IGVN worklist. Added the regression test.
08-04-2009

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/f2049ae95c3d
08-04-2009