RFR (S): 8151499: gc/g1/g1OopClosures.inline.hpp: assert(_from->is_in_reserved(p)) failed: p is not in from

Thomas Schatzl thomas.schatzl at oracle.com
Fri Apr 1 13:05:34 UTC 2016

Hi all,

  can I have reviews for the fix of a wrong assert in

The assert tried to make sure that for a given pointer to an oop p, the
"_from" region stored in the closure matches.

This is not true for a humongous non-array of references object: for
these we mark only the header dirty, and during investigation of a
particular card/reference, we need to go over all references of that

Since in this case, other references may not be in the same region as
p, the assert _from->is_in_reserved(p) fails since the change in JDK

While trying to think through the code, I added a note about additional
but benign remembered set entries that might be added while executing
the method to explain the issue a bit if you dare to think through the
entire code.

Thanks go to A. Shipilev for the test.

test case runs successfully, jprt, runs of gcbasher with 


More information about the hotspot-gc-dev mailing list