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
- Previous message (by thread): RFR: 8151556: Use the PreservedMarks* classes for the G1 preserved mark stacks
- Next message (by thread): Request for Review (s) - 8149343: assert(rp->num_q() == no_of_gc_workers) failed: sanity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- if (++_next_id == _num_q) {
- assert(!_discovery_is_mt, "Round robin should only be used in
serial discovery");
- if (++_next_id >= _num_q) {
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)
- void log_reflist_counts(DiscoveredList ref_lists[], size_t total_count) PRODUCT_RETURN;
- void log_reflist_counts(DiscoveredList ref_lists[], uint active_length, size_t total_count) PRODUCT_RETURN;
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>
- Previous message (by thread): RFR: 8151556: Use the PreservedMarks* classes for the G1 preserved mark stacks
- Next message (by thread): Request for Review (s) - 8149343: assert(rp->num_q() == no_of_gc_workers) failed: sanity
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]