The GitHub Actions job "Build Health" on grails-core.git/fix/gorm-bean-validation-constraints has failed. Run started by GitHub user jdaugherty (triggered by jdaugherty).
Head commit for run: 8400e11cbd96c094ce2215cc19ff979494a0ea46 / James Daugherty <[email protected]> Release the Introspector's BeanInfo cache after each TCK spec The Hibernate 7 core suite runs out of its default test fork heap on 9.0.x, and sits a few megabytes under it on 8.x: a heap dump at the OOM shows java.beans.ThreadGroupContext, the JDK Introspector's BeanInfo cache, retaining 203 MB, 41% of the heap, for 6,700 classes, with 370,000 method descriptors. Groovy reads the BeanInfo of a class when it builds its MetaClass, and the cache is keyed by the class and releases an entry only when the class is unloaded, which never happens in a test JVM. The domain classes of the TCK and of each spec cost about 330 method descriptors each, and every closure of every spec is a class with an entry of its own. The suite grew past the heap when the merge-up of 2026-10-30 added specs, and a pull request adding domain classes to the TCK tips it over. GrailsDataTckManager.cleanupSpec() now flushes the Introspector's caches, as cleanRegistry() already removes the MetaClasses of the domain classes. The suite's live set stops growing with the number of specs that have run; a class a later spec builds a MetaClass for is introspected again. With the flush the suite passes at the default heap in 7 minutes where it took 11 with a full GC every few tests, or failed. (cherry picked from commit 46d0b251a9d5549549e0b7a7391a092842358dad) Report URL: https://github.com/apache/grails-core/actions/runs/41562951277 With regards, GitHub Actions via GitBox
