Integrated: 8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info
Calvin Cheung
ccheung at openjdk.java.net
Tue Oct 26 16:32:14 UTC 2021
On Thu, 21 Oct 2021 21:42:45 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
> 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).
This pull request has now been integrated.
Changeset: e5cd2692
Author: Calvin Cheung <ccheung at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/e5cd2692da6327c6fde954f86595a08fe5edf43f
Stats: 248 lines in 9 files changed: 248 ins; 0 del; 0 mod
8274944: AppCDS dump causes SEGV in VM thread while adjusting lambda proxy class info
Reviewed-by: minqi, dholmes
-------------
PR: https://git.openjdk.java.net/jdk/pull/6070
More information about the hotspot-runtime-dev
mailing list