[8u40] RFR: 8064556: G1: ParallelGCThreads=0 may cause assert(!MetadataOnStackMark::has_buffer_for_thread(Thread::current())) failed: Should be empty

Mikael Gerdin mikael.gerdin at oracle.com
Tue Nov 11 13:15:33 UTC 2014

Hi Stefan,

On 2014-11-11 13:58, Stefan Karlsson wrote:
> Hi all,
> Please review this patch to weaken the failing assert:
>   http://cr.openjdk.java.net/~stefank/8064556/webrev.01
>   https://bugs.openjdk.java.net/browse/JDK-8064556

The change looks good.


> The asserts in pre_work_verification and post_work_verification were put
> in place to make sure that the worker threads entered and exited with
> clean slates. However, in JDK 8 this code path can be taken by the
> VMThread, which will have registered Metadata when running the
> MetadataOnStackMark constructor in the unloading phase of
> ConcurrentMark::weakRefsWork. This is different from JDK 9, which always
> use worker threads to execute this path.
> The patch has been verified with the failing test that found this issue.
> thanks,
> StefanK

More information about the hotspot-gc-dev mailing list