JDK-7160613 : VerifyRememberedSets doesn't work with CompressedOops
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs24
  • Priority: P5
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-04-11
  • Updated: 2014-09-19
  • Resolved: 2012-04-25
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 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Description
Running with -XX:+VerifyRememberedSets fails when running with CompressedOops:

Internal Error at oop.inline.hpp:209, pid=16818, tid=139806045280000
assert(!is_null(v)) failed: narrow oop value can never be zero

Comments
Vefied by Mikael Gerdin HS24b08/JDK8b36
31-05-2013

EVALUATION http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/dde53abda3d6
29-06-2012

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/dde53abda3d6
17-04-2012

EVALUATION --- old/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp 2012-04-11 16:19:21.000000000 +0200 +++ new/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp 2012-04-11 16:19:20.000000000 +0200 @@ -42,7 +42,7 @@ protected: template <class T> void do_oop_work(T* p) { - oop obj = oopDesc::load_decode_heap_oop_not_null(p); + oop obj = oopDesc::load_decode_heap_oop(p); if (_young_gen->is_in_reserved(obj) && !_card_table->addr_is_marked_imprecise(p)) { // Don't overwrite the first missing card mark
11-04-2012