RFR: 8261455: Automatically generate the CDS archive if necessary [v2]
Ioi Lam
iklam at openjdk.java.net
Wed Oct 20 21:23:03 UTC 2021
On Wed, 20 Oct 2021 18:39:42 GMT, Yumin Qi <minqi at openjdk.org> wrote:
>> Please review,
>> When shared archive (dynamic archive) failed to map due to damage of the archive file, dump/run jdk version mismatch or non-existence file etc, the new patch will automatically create a new shared archive if -XX:+AutoCreateSharedArchive specified with the name based on SharedArchiveFile.
>> This is a revised patch based on the old PR: 5077 and after bug 8273152 integrated.
>>
>> Tests: tier1,tier2,tier3,tier4
>>
>> Thanks
>> Yumin
>
> Yumin Qi has updated the pull request incrementally with one additional commit since the last revision:
>
> Removed set_set_dynamic_archive_path and refined test
Tiis overall looks good! I have a few questions and suggestions.
src/hotspot/share/cds/filemap.cpp line 183:
> 181: if (AutoCreateSharedArchive) {
> 182: if (!validate_archive()) {
> 183: // regenerate shared archive at exit
validate_archive() is not called for the static archive case. Is this intentional?
src/hotspot/share/cds/filemap.cpp line 1125:
> 1123: log_info(cds)("Base archive name is damaged");
> 1124: return false;
> 1125: }
I think the code can be made more readable by changing the function to `char* read_base_archive_name()`. Then there's no need to use `*target`. Also, the buffer needs to be freed in case of failure.
src/hotspot/share/runtime/thread.cpp line 3271:
> 3269: // Same operation is being done in JVM_BeforeHalt for handling the
> 3270: // case where the application calls System.exit().
> 3271: if (DynamicDumpSharedSpaces && Arguments::GetSharedDynamicArchivePath() != nullptr) {
What's the reason for `Arguments::GetSharedDynamicArchivePath() != nullptr`?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5997
More information about the hotspot-runtime-dev
mailing list