RFR(S): G1: assert(da ? referent->is_oop() : referent->is_oop_or_null()) failed: referenceProcessor.cpp:1054
Tony Printezis
tony.printezis at oracle.com
Mon Oct 3 20:23:39 UTC 2011
John,
It looks OK.
Could somebody else also have a quick look so that John can push it
today soon-ish? Thanks.
Tony
On 10/03/2011 04:09 PM, John Cuthbertson wrote:
> Hi Everyone,
>
> Can I have a couple of volunteers to review the changes for this CR?
> The webrev can be found at:
> http://cr.openjdk.java.net/~johnc/7097053/webrev.0/
>
> Summary:
> During RSet scanning the reference processor was discovering a
> reference oop whose referent object failed the is_oop() test in the
> failing assert. It appears that is was being caused by a race between
> RSet updating (which did not perform reference discovery) and RSet
> scanning (which did) and so the reference processor could see a
> referent object that was in the process of being copied. To resolve
> this issue we have decided to not do reference discovery duing RSet
> scanning.
>
> Testing: The failing test case (with a 1ms delay between object
> forwarding and copying - which increases the frequency of hitting the
> assert almost 3x) on highly threaded SPARC T2 systems; OpenDS on x64.
>
> Thanks,
>
> JohnC
More information about the hotspot-gc-dev
mailing list