RFR: 8267954: Shared classes that failed to load should not be loaded again [v2]
Ioi Lam
iklam at openjdk.java.net
Wed Jun 9 19:18:19 UTC 2021
On Wed, 9 Jun 2021 19:04:35 GMT, Yumin Qi <minqi at openjdk.org> wrote:
>> Hi, Please review
>> Shared classes should not be loaded again at failed loading from CDS. In the failed case, restore_unshareable_info failed due to some reason (OOM), but the class already polluted and failed to be loaded again.
>> Using the unused bit in _misc_flags indicates shared loading status to prevent it from being loaded again.
>>
>> Tests: tier1,tier2,tier3,tier4,tier7
>> Local tests: jtreg/hotspot/runtime/cds
>> TestDynamicDumpAtOom.java (which failed in tier7) with variant allocation sizes (used to reproduce the failure) passed.
>>
>> Thanks
>> Yumin
>
> Yumin Qi has updated the pull request incrementally with one additional commit since the last revision:
>
> Move SharedClassLoadingMark to systemDictionaryShared.hpp
src/hotspot/share/classfile/systemDictionary.cpp line 1297:
> 1295: #if INCLUDE_CDS
> 1296: SharedClassLoadingMark slm(THREAD, k);
> 1297: #endif
I think it's cleaner to use the CDS_ONLY macro. This macro is already used elsewhere in this file.
CDS_ONLY(SharedClassLoadingMark slm(THREAD, k));
-------------
PR: https://git.openjdk.java.net/jdk/pull/4434
More information about the hotspot-runtime-dev
mailing list