JDK-6947341 : JVM Crash running Oracle ATG CRMDemo
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 6u20,6u22
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: linux,linux_redhat_5.0
  • CPU: x86
  • Submitted: 2010-04-26
  • Updated: 2011-04-23
  • Resolved: 2011-04-23
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
6u21pFixed 7Fixed hs18Resolved
Related Reports
Duplicate :  
Relates :  
Description
Oracle ATG CRMDemo crashes running JDK 6u18.

Comments
PUBLIC COMMENTS Missing protected page below heap with compressed oops which use narrow_oop_base and implicit null check. It is caused by ReservedSpace code misses checks that OS reserved heap at requested address. Before 6951686 fix Linux will reserve heap memory at address which is not requested for compressed oops VM (usually above 32Gb virtual address: 0x00002aaaae200000). But VM thinks it did reserve at requested address and it does not need protected page below heap, so the code in protect_noaccess_prefix() is not executed. Solution: Add missing checks. I also added few asserts and prints to make sure memory reservation done correctly for compressed oops.
23-06-2010

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/5f249b390094
23-06-2010

EVALUATION Missing protected page below heap with compressed oops which use narrow_oop_base. It is caused by 6951686 bug which is fixed in HS19 only. Because of that bug (requested address is not used in special memory reservation) the heap is reserved above 32Gb virtual address ( 0x00002aaaae200000) but the VM code thinks it does reserved at requested address and it does not need nonaccess prefix (protected page below heap), so code in ReservedSpace::protect_noaccess_prefix() is not executed. But after heap initialization in Universe::initialize_heap() the narrow_oop_base is set based on heap address. So the ReservedSpace code is missing the check that heap is not reserved at specified address.
18-06-2010