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