RFR: 8310874: Runthese30m crashes with klass should be in the placeholders during verification [v3]

Ioi Lam iklam at openjdk.org
Fri Sep 15 15:21:40 UTC 2023


On Fri, 15 Sep 2023 12:11:29 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> For non-parallel capable class loaders, the class is not put in the placeholders table, so a verification at the wrong time will hit this assert. This change removes the invalid assert.
>> While studying this code, we also noticed that if an error occurs during class loading after the klass is put in the LoaderConstraints table but before adding to the dictionary, we weren't removing the klass from the LoaderConstraints table.  This change also fixes this.
>> Tested with inserting a LoaderConstraintTable::verify while running jck tests.  Also tested with failure insertion after the addClass() call to throw OutOfMemoryError.  Also tested with tier1-4.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Update comments.

Looks good to me. Mulling out the class basically reverts the constraints table to its original state (which says loaders A and B must load the same class for the name N, but neither loader has successfully loaded such a class yet). Here, either A or B attempted to load such a class but that failed due to OOM.

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

Marked as reviewed by iklam (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15752#pullrequestreview-1629203713


More information about the hotspot-runtime-dev mailing list