[lworld] RFR: 8327257: [lworld] Tests are needed to stress class preloading with concurrent class loadings [v2]
David Simms
dsimms at openjdk.org
Wed Sep 10 09:03:40 UTC 2025
On Tue, 9 Sep 2025 11:29:28 GMT, Paul Hübner <phubner at openjdk.org> wrote:
>> Hi all,
>>
>> This change strengthens our Valhalla-specific classloading test suite and guards against regressions. An overview of the new changes is as follows:
>> * `BigClassTreeClassLoader`: a utility classloader that generates huge class trees on the fly. The idea is to generate a tree that is deep (lots of parent classes) and very wide (classes have lots of value classes as fields, which have value class fields, etc.).
>> * `ConcurrentClassLoadingTest` strains the classloading and preloading by classloading many classes at the same time.
>> * `LoadableDescriptorsTest` ensures that the `LoadableDescriptors` attribute can handle unexpected data. This may need to be revisited if https://bugs.openjdk.org/browse/JDK-8366907 changes the semantics.
>> * `PreLoadCircularityTest` ensures that preloading happens even when there are cycles (via inheritance, fields, and both).
>> * `PreLoadDoesNotInitTest` is a regression test that ensures preloading will not initialize a class.
>> * `PreLoadFailuresDoNotImpactApplicationTest` ensures that a flaky classloader during preloading will not cause crashes as long as the classloader can find the class when it is actually used.
>> * `ValueClassInheritanceTest` is a regression test that ensures one cannot have a value class inherit from something that's not an abstract value class.
>
> Paul Hübner has updated the pull request incrementally with three additional commits since the last revision:
>
> - Adjust stress rate.
> - Re-enable test.
> - Increase concurrent loading iterations.
Sorry I pushed the jdk-26+1 merge, meaning you'll need to flick major version (69 to 70).
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1552#issuecomment-3274005318
More information about the valhalla-dev
mailing list