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