RFR: 8075466: Address not aligned in Klass::decode_klass_not_null

Kim Barrett kim.barrett at oracle.com
Mon Apr 13 02:47:32 UTC 2015


Please review this change to the filtering of SATB queue contents.

The problem is that a SATB queue may contain a stale reference to an
eagerly reclaimed humongous object.  Assert-conditional verification
during full queue processing that all entries are oop's can now fail.

We deal with this by eliminating the pre-filtering verification
(removed call to ObjPtrQueue::verify_oops_in_buffer and removed that
now unused function).  Instead, ObjPtrQueue::filter has been revised
to be more careful about oop-ness assumptions, and to assert the
oop-ness of entries that are retained.

This is related to
https://bugs.openjdk.java.net/browse/JDK-8073717
which is another failure due to unexpected stuff in SATB queues as a
result of eager reclaim of a humongous object.

As an aside, ObjPtrQueue is now poorly named.  A followup CR will be
filed to rename it to something like SATBQueue.

CR:
https://bugs.openjdk.java.net/browse/JDK-8075466

Webrev:
http://cr.openjdk.java.net/~kbarrett/8075466/webrev.00/

Testing:
JPRT
local RefWorkload with -XX:+UseG1GC
Aurora GC Nightly and VM quicktests with -XX:+UseG1GC




More information about the hotspot-gc-dev mailing list