# Issue
Many AppCDS test asserts with `assert(false) failed: Address 0x00007f0dfc2923e0
for <unknown>/('verify_oop: r11: broken oop oop_result, "broken oop in
call_VM_base" (src/hotspot/cpu/x86/macroAssembler_x86.cpp:1353)') is missing in
AOT Code Cache addresses table` when run with `-Xcomp --enable-preview`
# Cause
The crash happens during AOT cache dumping seemingly because `-XX:+VerifyOops`
causes the adapter to use addresses that the AOT doesn't know about. In
particular, `verify_oop`/`verify_oop_addr` add a message C‑string and reference
the verify‑oop stub entry. `AOTCodeCache::write_relocations()` tries to
serialize those relocations, `AOTCodeAddressTable::id_for_address()` can’t
resolve them and crashes.
In this case the issue happens with `--enable-preview` because it creates an
adapter for scalarized arguments and, after creating the oop from the
arguments, `get_vm_result_oop` invokes `verify_oop_msg`. Without
`--enable-preview` the path is never taken and the missing "registration" isn’t
exercised (I fear that this crash could potentially be triggered by some other
(non preview) code but the fix doesn't need to distinguish between
preview/non-preview).
# Fix
Apparently we need to make the two addresses used by `verify_oop_msg` "visible"
to AOT: register the debug message string and add
`StubRoutines::verify_oop_subroutine_entry_address()` to the AOT “extrs” table.
# Testing
Tier 1-3+
Failing CDS tests before and after
-------------
Commit messages:
- JDK-8379913: remove include
- JDK-8379913: add VerifyOops condition
- JDK-8379913: remove useless comment
- JDK-8379913: aarch64
- JDK-8379913: [lworld] AppCDS test asserts with -Xcomp --enable-preview
Changes: https://git.openjdk.org/valhalla/pull/2233/files
Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2233&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8379913
Stats: 8 lines in 3 files changed: 8 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/valhalla/pull/2233.diff
Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2233/head:pull/2233
PR: https://git.openjdk.org/valhalla/pull/2233