JDK-6869822 : assert(Universe::narrow_oop_shift() == 0,"use unscaled narrow oop")
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs16
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_2003
  • CPU: x86
  • Submitted: 2009-08-07
  • 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
Description
compiler/6826736/Test.java  failed during Nightly testing.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (C:\temp\jprt\P1\B\213244.jrose\source\src\share\vm\memory\universe.cpp:860), pid=250700, tid=30884
#  Error: assert(Universe::narrow_oop_shift() == 0,"use unscaled narrow oop")
#
# JRE version: 7.0-b67

Comments
EVALUATION http://hg.openjdk.java.net/hsx/hsx16/master/rev/248f0ad25d21
13-11-2009

EVALUATION http://hg.openjdk.java.net/hsx/hsx16/baseline/rev/248f0ad25d21
06-11-2009

PUBLIC COMMENTS Problem: The test uses -XX:HeapBaseMinAddress=32g flag to force heap allocation above 32g and get compressed oops with non zero base. In such case the finction Universe::preferred_heap_base() sets narrow_oop_shift to 3 and returns 0 as requested heap address. But with 0 requested address (default memory address request) OS still may allocate small heap bellow 4gb. And this will trigger the assert. Solution: Replace the assert with narrow_oop_shift set to 0. Also use specified on command line HeapBaseMinAddress value as heap base address for the first (from three) request.
17-08-2009

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/1a81ea4b45d4
15-08-2009

SUGGESTED FIX Replace the assert with narrow_oop_shift set to 0.
07-08-2009

EVALUATION The test uses -XX:HeapBaseMinAddress=32g flag to force heap allocation above 32g and get compressed oops with non 0 base. In such case the finction Universe::preferred_heap_base() sets narrow_oop_shift and returns 0 as requested heap address. But with 0 requested address (allocate anywhere) OS still may allocate heap bellow 4gb. And this will trigger assert.
07-08-2009