[jdk16] RFR: 8258236: Segfault in ClassListParser::resolve_indy dumping static AppCDS archive
Coleen Phillimore
coleenp at openjdk.java.net
Tue Dec 15 23:43:04 UTC 2020
On Tue, 15 Dec 2020 23:08:42 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
> Please review this change for JDK 16.
>
> In ClassListParser::resolve_indy, if a class has previously failed verification, don't proceed with resolve indy for that class to avoid dereferencing a null cpcache pointer.
>
> Passed tiers 1,2,3,4 tests.
Changes requested by coleenp (Reviewer).
src/hotspot/share/classfile/classListParser.cpp line 474:
> 472: return;
> 473: }
> 474: MetaspaceShared::try_link_class(ik, THREAD);
Doesn't the check for failing verification belong after try_link_class(), which runs the verifier?
src/hotspot/share/classfile/classListParser.cpp line 467:
> 465: Handle class_loader(THREAD, SystemDictionary::java_system_loader());
> 466: Handle protection_domain;
> 467: Klass* klass = SystemDictionary::resolve_or_fail(class_name_symbol, class_loader, protection_domain, true, THREAD); // FIXME should really be just a lookup
If an exception is unexpected, this should be CHECK not THREAD.
-------------
PR: https://git.openjdk.java.net/jdk16/pull/30
More information about the hotspot-runtime-dev
mailing list