RFR: 8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info [v3]
Calvin Cheung
ccheung at openjdk.java.net
Mon Oct 25 20:48:37 UTC 2021
> During dumping of CDS archive, the `ArchiveBuilder::gather_klass_and_symbol` set the address of an object to null if the
> object cannot be archived. Since the lambda proxy class in this scenario contains an old version (major version < 50) of
> interface which has been linked, the class won't be archived and its address will be set to null. The `SystemDictionaryShared::adjust_lambda_proxy_class_dictionary` is called after
> `ArchiveBuilder::gather_klass_and_symbol` and thus encountered the null pointer.
>
> A fix is to add a function `SystemDictionaryShared::cleanup_lambda_proxy_class_dictionary` to cleanup the
> `_dumptime_lambda_proxy_class_dictionary` at the beginning of the CDS dumping operation.
>
> The proposed fix passed tiers 1 - 4 testing (including the new tests).
Calvin Cheung has updated the pull request incrementally with one additional commit since the last revision:
revert the change of calling SystemDictionaryShared::start_dumping() in metaspaceShared.cpp
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/6070/files
- new: https://git.openjdk.java.net/jdk/pull/6070/files/13d5a86e..8432f324
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6070&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6070&range=01-02
Stats: 2 lines in 1 file changed: 0 ins; 2 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/6070.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/6070/head:pull/6070
PR: https://git.openjdk.java.net/jdk/pull/6070
More information about the hotspot-runtime-dev
mailing list