RFR: 8349009: JVM fails to start when AOTClassLinking is used with unverifiable old classes [v4]

Ioi Lam iklam at openjdk.org
Thu Jan 30 06:20:46 UTC 2025


On Thu, 30 Jan 2025 06:16:38 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> During the testing of [JDK-8348752](https://bugs.openjdk.org/browse/JDK-8348752), we notice test failures caused by unverifiable old classes (i.e., classes with bad instructions and major version < 50).
>> 
>> The fix is simple. Simply exclude unlinked classes from the AOTCache when `-XX:+AOTClassLinking` is enabled.
>> 
>> Verified with JCK.
>> 
>> NOTE: I have to exclude some old CDS tests from test tasks that add the `-XX:+AOTClassLinking` flag. These test cases assume that **verifiable but unlinked** classes are archived. However, with this PR, such classes are no longer archived. These tests are now added to `TEST.groups`, along with other old CDS tests that are no longer valid with  `-XX:+AOTClassLinking`
>
> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Exclude test cases that assume (verifiable) old classes are always archived; but they are now not archived when -XX:+AOTClassLinking is enabled

UPDATE: I have to exclude some old CDS tests from test tasks that add the `-XX:+AOTClassLinking` flag. These test cases assume that **verifiable but unlinked** classes are archived. However, with this PR, such classes are no longer archived. These tests are now added to `TEST.groups`, along with other old CDS tests that are no longer valid with `-XX:+AOTClassLinking`.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23361#issuecomment-2623610068


More information about the hotspot-runtime-dev mailing list