You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by "jdaugherty (via GitHub)" <gi...@apache.org> on 2026/10/24 01:58:26 UTC

[PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

jdaugherty opened a new pull request, #16747:
URL: https://github.com/apache/grails-core/pull/16747

   `AstUtils.isDomainClass(ClassNode)` was `@Memoized`. Groovy's default memo is an unbounded cache keyed by argument equality, and `ClassNode` equality is the class name, so every node ever asked about was pinned for the life of the JVM, and with it the node's module, the compile unit and the class loader of its compilation. In a forked Groovy compiler that Gradle reuses for a project's main and test compiles, that is the whole AST of the previous compile.
   
   Measured on 9.0.x after the grails-datamapping-core test compile: the compiler fork still held 194,420 `ClassNode`s and 154 `ModuleNode`s, 222 MB after a full collection, when the next compile started; with this change the same point holds one `ModuleNode` and 76 MB. The MongoDB core test compile of #16631 then ran out of its 2 GB on CI, which is where this was found.
   
   The verdict now lives as node metadata on the node's `redirect()`, the way `AstPropertyResolveUtils` already keeps its property cache, so it is collected with the node, and two same-named nodes from different compilations, such as test fixtures compiled from strings, each get their own answer; #16653 had added `isDomainClassUncached` on 9.0.x to sidestep that collision for the id and version placement, and that uncached check now backs the cached one here as well. The memo dates from GORM itself (ee14a969f9, 2015) and came in with the GORM integration (a58aa145cf); it is the same on every branch from 7.0.x up, so this is the oldest branch and merges up. The same change rides in #16631 as its own commit until this one reaches 9.0.x.
   
   Verified: `grails-datastore-core` and `grails-datamapping-core` suites and `codeStyle` on 7.0.x; the new spec in `AstUtilsSpec` covers the same-name case.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #16747:
URL: https://github.com/apache/grails-core/pull/16747#issuecomment-6378485349

   ## 🚨 Jobs failed without executing tests 🚨
   
   ### Failed Jobs without Test Failures
   
   ❌ [CI / Spring Security Config Functional Tests \(annotation\)](https://github.com/apache/grails-core/actions/runs/40052179263/job/120747060834?pr=16747)
   
   🏷️ Commit: ed52358571b9836ed4a08ad7678f86b8f2cf21fa
   ▶️ Tests:  0 executed
   🟡 Checks: 7/53 completed
   
   ### Rerun Controls
   
   Click the checkbox to trigger a rerun:
   
   🔲 **Rerun jobs**
   
   ---
   _Learn more about TestLens at [testlens.app/docs](https://testlens.app/docs/features/pr-comment/)._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #16747:
URL: https://github.com/apache/grails-core/pull/16747#issuecomment-6379369421

   ## ✅ All tests passed ✅
   
   🏷️ Commit: b424de5df03570a37498db87476d2be8e605e4f0
   ▶️ Tests:  56355 executed
   ⚪️ Checks: 58/58 completed
   
   ---
   _Learn more about TestLens at [testlens.app/docs](https://testlens.app/docs/features/pr-comment/)._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

Posted by "jdaugherty (via GitHub)" <gi...@apache.org>.
jdaugherty merged PR #16747:
URL: https://github.com/apache/grails-core/pull/16747


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #16747:
URL: https://github.com/apache/grails-core/pull/16747#issuecomment-6379772585

   ## 🚨 All tests passed but jobs failed 🚨
   
   ### Failed Jobs without Test Failures
   
   ❌ [CI / Build Grails Forge \(21\)](https://github.com/apache/grails-core/actions/runs/40061552547/job/120775982709?pr=16747)
   ❌ [CI / Build Grails-Core \(ubuntu-latest, 21\)](https://github.com/apache/grails-core/actions/runs/40061552547/job/120775982690?pr=16747)
   ❌ [CI / Functional Tests \(25\)](https://github.com/apache/grails-core/actions/runs/40061552547/job/120775982683?pr=16747)
   ❌ [CI / Spring Security Config Functional Tests \(putWithParams\)](https://github.com/apache/grails-core/actions/runs/40061552547/job/120775982920?pr=16747)
   ❌ [CI / Spring Security Tests \(17\)](https://github.com/apache/grails-core/actions/runs/40061552547/job/120775982728?pr=16747)
   ❌ [Licensing - RAT Report / rat-audit](https://github.com/apache/grails-core/actions/runs/40061552491/job/120775958452?pr=16747)
   
   🏷️ Commit: c94fc5747e9e7c7b012448f282569c702b608a35
   ▶️ Tests:  826 executed
   🟡 Checks: 19/54 completed
   
   ### Rerun Controls
   
   Click the checkbox to trigger a rerun:
   
   🔲 **Rerun jobs**
   
   ---
   _Learn more about TestLens at [testlens.app/docs](https://testlens.app/docs/features/pr-comment/)._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Keep the domain-class verdict on the class node, not in a JVM-wide cache [grails-core]

Posted by "jdaugherty (via GitHub)" <gi...@apache.org>.
jdaugherty commented on PR #16747:
URL: https://github.com/apache/grails-core/pull/16747#issuecomment-6378614573

   Added b424de5df0: the `build_grails` job of the Groovy joint validation workflow starts a `mongo:8` service container and ran on `ubuntu-latest`, which now resolves to the ubuntu-26.04 image with kernel 7.0.0-1017-azure. MongoDB 7 and 8 refuse that kernel, so the service died at "Initialize containers" before the job's first step (job 120747910586). It now runs on `ubuntu-22.04`, kernel 6.8, the same pin the MongoDB functional lane got in ef9fec7929. That workflow exists only on 7.0.x, so the merge-up meets a modify/delete on it and keeps it deleted.
   
   The earlier failure of the Spring Security Config lane was the plugin portal not resolving `com.gradle.develocity` 4.5.1 once, which exists; the run was superseded by this push.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@grails.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org