RFR: JDK-8209389: SIGSEGV in WalkOopAndArchiveClosure::do_oop_work
Jiangli Zhou
jiangli.zhou at oracle.com
Wed Aug 15 04:34:20 UTC 2018
Hi Ioi,
Thanks for the review and suggestions. I'll incorporate them.
Thanks,
Jiangli
On 8/14/18 6:05 PM, Ioi Lam wrote:
> Hi Jiangli,
>
> The changes look good. I think it's OK to exit the dumping VM because
> normally we should not be archiving such large objects.
>
> For the various messages, I think we should include the object size
> (in bytes).
>
> Also, for this message:
>
> 395 if (archived == NULL) {
> 396 ResourceMark rm;
> 397 tty->print("Failed to archive %s object " PTR_FORMAT " in
> sub-graph",
> 398 obj->klass()->external_name(), p2i(obj));
> 399 vm_exit(1);
> 400 }
>
> In addition to the size, I think we should also add obj->print_on(tty)
> to help diagnosing the problems.
>
> Thanks
>
> - Ioi
>
> On 8/14/18 5:50 PM, Jiangli Zhou wrote:
>> Please review the following fix that addresses the issue for
>> JDK-8209389. A Java object that's larger than one GC region cannot be
>> archived as we currently don't support object spanning more than one
>> archive heap region. The archiving code needs to check the
>> MetaspaceShared::archive_heap_object return value and handle failure
>> accordingly. Thanks Claes for finding the edge case and reporting the
>> problem!
>>
>> webrev: http://cr.openjdk.java.net/~jiangli/8209389/webrev.00
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8209389
>>
>> - java_lang_Class::archive_basic_type_mirrors
>> Archived object returned by MetaspaceShared::archive_heap_object
>> should not be NULL in these cases (basic type mirrors are not
>> humongous). Added an assert.
>>
>> - HeapShared::archive_reachable_objects_from_static_field
>> If the sub-graph entry object is too large, archiving is skipped
>> for it’s referenced sub-graph and dumping process continues.
>>
>> - WalkOopAndArchiveClosure::do_oop_work
>> Abort dumping when archiving failures due to extra-large object
>> encountered during the sub-graph archiving.
>>
>> Tested with the new test case included in the webrev. Tier1 - tier4
>> testing are in progress.
>>
>> Thanks,
>> Jiangli
>
More information about the hotspot-runtime-dev
mailing list