RFR: 8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info [v2]
Calvin Cheung
ccheung at openjdk.java.net
Fri Oct 22 18:41:43 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:
remove empty CleanupDumpTimeLambdaProxyClassTable ctor
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/6070/files
- new: https://git.openjdk.java.net/jdk/pull/6070/files/81d53fea..13d5a86e
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6070&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6070&range=00-01
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