On Wed, 22 Apr 2026 07:15:22 GMT, Joel Sikström <[email protected]> wrote:
>> Hello, >> >> In the development of Automatic Heap Sizing (AHS) for ZGC we run into >> intermittent failures in the ClassesByName2Test.java test, and also >> RedefineCrossEvent.java which runs ClassesByName2Test.java. >> >> In AHS we are running GCs more frequently, which affects how often classes >> are unloaded for example. In the tests mentioned above, we see that >> LambdaForm classes are unloaded before we call `vm().classesByName(name)`, >> which fails the test. >> >> LambdaForm classes are hidden, so they can be unloaded independently of >> their class loader. I suggest we make this test more robust by skipping >> verification of hidden classes, which include the LambdaForm classes we've >> observed so far. Checking for a slash `/` should be enough to determine if a >> class is hidden or not. A "valid"/"normal" Java class should not have a >> slash in their name, as specified by "normal" classes having a "binary >> name", which can't include a slash. See >> [https://docs.oracle.com/en/java/javase/26/docs/api/java.base/java/lang/Class.html#getName()](https://docs.oracle.com/en/java/javase/26/docs/api/java.base/java/lang/Class.html#getName()) >> for details on the class name returned by `getName()`. >> >> Another way to get a similar failure to this in mainline is to run with the >> following JVM flags, which also runs frequent GCs: >> >> -XX:+UseZGC -XX:+ZCollectionIntervalOnly -XX:ZCollectionIntervalMajor=0.001 >> >> >> I've also removed the commented-out print, which was very useful in >> debugging this. >> >> Testing: >> * We've not been able to see failures for this test after this fix. >> * Oracle's tier1, tier2 and tier6 (where we've observed failures so far) >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Joel Sikström has updated the pull request incrementally with two additional > commits since the last revision: > > - 4 space indentation isntead of 2 on other new block > - 4 space indentation instead of 2 Thank you for the reviews everyone! ------------- PR Comment: https://git.openjdk.org/jdk/pull/30825#issuecomment-4294531806
