Request for Review (s) - 8149343: assert(rp->num_q() == no_of_gc_workers) failed: sanity (original) (raw)

Jon Masamitsu jon.masamitsu at oracle.com
Thu Mar 10 19:53:26 UTC 2016


https://bugs.openjdk.java.net/browse/JDK-8149343

The error here was that the number of active workers was not always set correctly for parallel Reference processing. The first fix was to set the number of active workers in the ReferenceProcessor in the task constructor. Once thatDiff was fixed a subsequent assertion failure occurred.

Internal Error

(/export/jmasa/java/jdk9-rt-8149343/src/share/vm/gc/shared/referenceProcessor.cpp:884), pid=18444, tid=18500

assert(id < _max_num_q) failed: Id is out-of-bounds id 23 and max id 23)

This was fixed by the change

serial discovery");

See the CR for an example log which showed _num_q changing values between different phases of a collection and where the value of _next_id was greater than _num_q.

The last change was to add a parameter to the logging function so that the logging only output the active lists (which made the reading of the logs simpler)

This patch fixes UseG1GC for the failure where UseDynamicNumberOfGCThreads and ParallelRefProcEnabled are both turned on. There is still a failure with UseParallelGC that is being fixed under 8150994.

http://cr.openjdk.java.net/~jmasa/8149343/webrev.00/

Testing: gc_test_suite with UseDynamicNumberOfGCThreads on and ParallelRefProcEnabled on and off. rbt in progress

Thanks.

Jon -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160310/f16dd088/attachment.htm>



More information about the hotspot-gc-dev mailing list