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

Stefan Karlsson stefan.karlsson at oracle.com
Tue Nov 11 12:58:04 UTC 2014


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 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