You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by "borinquenkid (via GitHub)" <gi...@apache.org> on 2026/05/23 03:16:00 UTC
[PR] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
borinquenkid opened a new pull request, #15678:
URL: https://github.com/apache/grails-core/pull/15678
## Description
This PR replaces #15656, which was rebuilt on a clean branch to remove a corruption commit from the history.
**Problem:** In multi-tenant GORM environments with many tenants (M) and domain classes (N), the previous implementation instantiated a full set of static API, instance API, and validation API objects per tenant per entity, producing O(M × N) object allocations. This caused excessive memory consumption and degraded startup performance as tenant counts scaled.
**Solution:** Refactor `GormRegistry` to use a single shared registry keyed by entity class name and qualifier (datasource/tenant), with the GORM API objects created once per entity per qualifier and reused across tenants. This reduces the allocation profile to O(M + N).
**This rebuild also fixes two regression classes exposed by the new registry:**
1. **Multi-tenancy resolution regressions** — `GormApiResolver` and `GormRegistry.registerEntityDatastores` were routing DISCRIMINATOR/SCHEMA tenant IDs through the datasource connection lookup path, causing child datastores to be overwritten by the parent and `PartitionedMultiTenancySpec.count()` to NPE. Fixed by detecting multi-tenancy mode before delegating to `getDatastoreForConnection`, and by skipping non-DEFAULT qualifier registration when the qualifier resolves back to the parent (i.e., it's a runtime tenant ID, not a datasource name).
2. **Child datastore initialization order** — `HibernateDatastore` (H5) and `ChildHibernateDatastore` (H7) were throwing `ConfigurationException` when `getDatastoreForConnection` was called for a sibling during initialization before all children were registered. Fixed to return `null` during the initialization phase so `GormRegistry` falls back gracefully and re-registers once initialization completes.
**Test infrastructure:** Added `forkEvery = 1` to `gradle/hibernate5-test-config.gradle` and `gradle/hibernate7-test-config.gradle`. The root config uses `forkEvery = 50/100` for speed, but with a shared `GormRegistry` singleton, TCK specs running in the same JVM before `PartitionedMultiTenancySpec` were clearing `datastoresByQualifier["default"]` and causing the NPE described above. Each test class now gets its own JVM.
**Verified:** H5 — 669 tests / 0 failures. H7 — 2960 tests / 0 failures.
## Contributor Checklist
### Issue and Scope
- [x] This PR is linked to an existing issue that has been **acknowledged or approved** by the project team. *(Replaces #15656, which tracks the approved O(M+N) scaling work.)*
- [x] This PR addresses the **complete scope** of the linked issue.
- [x] This PR contains a **single, focused change**.
- [x] This PR targets the **correct branch** (`8.0.x-hibernate7` — major release branch; breaking API changes permitted).
### Code Quality
- [x] I have **added or updated tests** that cover the changes introduced in this PR.
- [x] I have verified that all existing tests pass (H5: 669/0 failures, H7: 2960/0 failures).
- [x] My code follows the project's **code style** guidelines. `./gradlew codeStyle` has been run and violations resolved.
- [x] This PR does **not** include unsolicited reformatting or unrelated refactoring.
- [x] Generative AI tooling was used in preparing this contribution with a quality model, consistent with the project's quality standards.
### Licensing and Attribution
- [x] All contributed code is provided under the Apache License 2.0, and new source files include the appropriate Apache license header.
- [x] I have the necessary rights to submit this contribution and confirm it is my own original work.
- [x] Generative AI tooling use follows the [ASF policy on generative tooling](https://www.apache.org/legal/generative-tooling.html) and is properly attributed.
### Documentation
- [x] No new user-facing APIs are introduced; this is a performance/correctness fix to the internal registry.
- [x] The PR description explains what was changed and why.
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4589595169
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26734973394/job/78786496072?pr=15678) | :grails-data-mongodb-core:test | MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy | ❌ |
🏷️ Commit: e189ae8fe81e1a4a0ba0efa34731c5af44f7ccf1
▶️ Tests: 31968 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26734973394/job/78786496072?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
org.grails.datastore.mapping.multitenancy.exceptions.TenantNotFoundException: No tenantId found
at org.grails.datastore.mapping.multitenancy.resolvers.SystemPropertyTenantResolver.resolveTenantIdentifier(SystemPropertyTenantResolver.groovy:42)
at org.grails.datastore.gorm.DefaultDatastoreSelector.select(GormApiResolver.groovy:372)
at org.grails.datastore.gorm.GormApiResolver.findDatastore(GormApiResolver.groovy:82)
at org.grails.datastore.gorm.GormRegistry$2.resolve(GormRegistry.groovy:780)
at org.grails.datastore.gorm.AbstractDatastoreApi.getDatastore(AbstractDatastoreApi.groovy:61)
at org.grails.datastore.gorm.AbstractGormApiRegistry.getDirect(AbstractGormApiRegistry.groovy:80)
at org.grails.datastore.gorm.GormRegistry.resolveStaticApi(GormRegistry.groovy:470)
at org.grails.datastore.gorm.GormRegistry.findStaticApi(GormRegistry.groovy:110)
at grails.gorm.MultiTenant$Trait$Helper.eachTenant(MultiTenant.groovy:58)
at org.grails.datastore.gorm.mongo.connections.MongoConnectionSourcesSpec.Test persist and retrieve entities with multi tenancy(MongoConnectionSourcesSpec.groovy:66)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.mongo.connections.MongoConnectionSourcesSpec]/[feature:$spock_feature_1_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4812185433
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
#### [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/28255808542/job/83718969942?pr=15678) > :grails-data-hibernate7-core:test
| Test | Runs |
|---|---|
| AttachMethodSpec > Test attach method | ❌ |
🏷️ Commit: b4dd42f312a3c633125572da617b3e69f67fa3cc
▶️ Tests: 24312 executed
🟡 Checks: 27/77 completed
### Test Failures
<details>
<summary><strong>AttachMethodSpec > Test attach method</strong> (:grails-data-hibernate7-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28255808542/job/83718969942?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
test.isAttached()
| |
| java.lang.NullPointerException: Cannot invoke "org.grails.orm.hibernate.IHibernateTemplate.contains(Object)" because "this.hibernateTemplate" is null
| at org.grails.orm.hibernate.HibernateGormInstanceApi.isAttached(HibernateGormInstanceApi.groovy:429)
| at org.grails.datastore.gorm.GormEntity$Trait$Helper.isAttached(GormEntity.groovy:195)
| at org.apache.grails.data.testing.tck.tests.AttachMethodSpec.Test attach method(AttachMethodSpec.groovy:42)
org.apache.grails.data.testing.tck.domains.Person : 1
at org.apache.grails.data.testing.tck.tests.AttachMethodSpec.Test attach method(AttachMethodSpec.groovy:42)
Caused by: java.lang.NullPointerException: Cannot invoke "org.grails.orm.hibernate.IHibernateTemplate.contains(Object)" because "this.hibernateTemplate" is null
at org.grails.orm.hibernate.HibernateGormInstanceApi.isAttached(HibernateGormInstanceApi.groovy:429)
at org.grails.datastore.gorm.GormEntity$Trait$Helper.isAttached(GormEntity.groovy:195)
... 1 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 AttachMethodSpec > Test attach method <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.AttachMethodSpec]/[feature:$spock_feature_1_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4569761601
## 🚨 TestLens detected 16 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a many-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a one-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name > input for a many-to-many property doesn\'t have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-many property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a one-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property does have \`.id\` at the end of the name > input for a many-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property does have \`.id\` at the end of the name > input for a one-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property doesnt have .id at the end of the name > input for a many-to-many property doesnt have .id at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property is a select > input for a many-to-many property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property is a select > input for a many-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > input for a \#description property is a select > input for a one-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-many property with a value of [Homer Simpson] has the correct option selected | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678) | :grails-fields:test | DefaultInputRenderingSpec > select for a \#description property with a value of \#value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
🏷️ Commit: 4358b700398bcb70eedab7fdbc7190516815aef5
▶️ Tests: 16558 executed
🟡 Checks: 21/67 completed
### Test Failures (first 10 of 16)
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property doesn't have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:466)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
output =~ /option value="${people[1].id}" selected="selected" >${people[1].name}/
| | | | | | | |
| | | | 2 | | Homer Simpson
| | | Homer Simpson | Homer Simpson
| | | [Bart Simpson, Homer Simpson, Monty Burns]
| | [Bart Simpson, Homer Simpson, Monty Burns]
| java.util.regex.Matcher[pattern=option value="2" selected="selected" >Homer Simpson region=0,77 lastmatch=]
<select name="prop.id" id="prop" >
<option value="null"></option>
</select>
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.select for a #description property with a value of #value has the correct option selected(DefaultInputRenderingPersistentSpec.groovy:525)
```
</details>
<details>
<summary><strong>DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingSpec.groovy:534)
```
</details>
<details>
<summary><strong>DefaultInputRenderingSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingSpec.groovy:534)
```
</details>
<details>
<summary><strong>DefaultInputRenderingSpec > input for a #description property doesnt have .id at the end of the name > input for a many-to-many property doesnt have .id at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26612478732/job/78421148960?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingSpec.input for a #description property doesnt have .id at the end of the name(DefaultInputRenderingSpec.groovy:515)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_23] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_22] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property is a select <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_21] -->
🔲 DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_25] -->
🔲 DefaultInputRenderingSpec > input for a \#description property does have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingSpec]/[feature:$spock_feature_1_24] -->
🔲 DefaultInputRenderingSpec > input for a \#description property doesnt have .id at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingSpec]/[feature:$spock_feature_1_23] -->
🔲 DefaultInputRenderingSpec > input for a \#description property is a select <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingSpec]/[feature:$spock_feature_1_22] -->
🔲 DefaultInputRenderingSpec > select for a \#description property with a value of \#value has the correct option selected <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingSpec]/[feature:$spock_feature_1_26] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4800938592
## ✅ All tests passed ✅
🏷️ Commit: cd56ee0a7f091b23ab3f84c2a74fe8e16f2e55dc
▶️ Tests: 190 executed
⚪️ Checks: 60/60 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4813498507
## 🚨 TestLens detected 7 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
#### [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678) > :grails-data-mongodb-core:test
| Test | Runs |
|---|---|
| AttachMethodSpec > Test attach method | ❌ |
| BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint for the associated child object | ❌ |
| BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on root instance | ❌ |
| BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on the unmodified association loaded as initialized proxy | ❌ |
| ConstraintsSpec > Test constraints with static default values | ❌ |
| DeleteAllSpec > Test that many objects can be deleted at once using multiple arguments | ❌ |
| DeleteAllSpec > Test that many objects can be deleted using an iterable | ❌ |
🏷️ Commit: 2f651c7bf3b43df86011108fe557caa8c6e3d90c
▶️ Tests: 37565 executed
🟡 Checks: 25/79 completed
### Test Failures
<details>
<summary><strong>AttachMethodSpec > Test attach method</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 26 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint for the associated child object</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 27 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on root instance</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 27 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on the unmodified association loaded as initialized proxy</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 27 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>ConstraintsSpec > Test constraints with static default values</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 26 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>DeleteAllSpec > Test that many objects can be deleted at once using multiple arguments</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 26 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
<details>
<summary><strong>DeleteAllSpec > Test that many objects can be deleted using an iterable</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/28264857326/job/83749857815?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
java.lang.IllegalArgumentException: wrong number of arguments: 26 expected: 1
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.createSession(GrailsDataMongoTckManager.groovy:136)
at org.apache.grails.data.testing.tck.base.GrailsDataTckManager.setup(GrailsDataTckManager.groovy:134)
at org.apache.grails.data.mongo.core.GrailsDataMongoTckManager.setup(GrailsDataMongoTckManager.groovy:72)
at org.apache.grails.data.testing.tck.base.GrailsDataTckSpec.setup(GrailsDataTckSpec.groovy:65)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 AttachMethodSpec > Test attach method <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.AttachMethodSpec]/[feature:$spock_feature_1_0] -->
🔲 BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint for the associated child object <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec]/[feature:$spock_feature_1_1] -->
🔲 BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on root instance <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec]/[feature:$spock_feature_1_0] -->
🔲 BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec > test unique constraint on the unmodified association loaded as initialized proxy <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec]/[feature:$spock_feature_1_2] -->
🔲 ConstraintsSpec > Test constraints with static default values <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.ConstraintsSpec]/[feature:$spock_feature_1_0] -->
🔲 DeleteAllSpec > Test that many objects can be deleted at once using multiple arguments <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.DeleteAllSpec]/[feature:$spock_feature_1_0] -->
🔲 DeleteAllSpec > Test that many objects can be deleted using an iterable <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.DeleteAllSpec]/[feature:$spock_feature_1_1] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4811261376
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
#### [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/28249040279/job/83696125556?pr=15678) > :grails-datamapping-core-test:test
| Test | Runs |
|---|---|
| OptimisticLockingSpec > Test optimistic locking | ❌ |
🏷️ Commit: 5ad16445c588025fa2f1e0da61074767e385856d
▶️ Tests: 11843 executed
🟡 Checks: 28/79 completed
### Test Failures
<details>
<summary><strong>OptimisticLockingSpec > Test optimistic locking</strong> (:grails-datamapping-core-test:test in <a href="https://github.com/apache/grails-core/actions/runs/28249040279/job/83696125556?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition not satisfied:
ex instanceof OptimisticLockingException
| | |
| false class org.grails.datastore.mapping.core.OptimisticLockingException
null (void)
at org.apache.grails.data.testing.tck.tests.OptimisticLockingSpec.Test optimistic locking(OptimisticLockingSpec.groovy:102)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 OptimisticLockingSpec > Test optimistic locking <!-- uniqueId=[engine:spock]/[spec:org.apache.grails.data.testing.tck.tests.OptimisticLockingSpec]/[feature:$spock_feature_1_1] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4575889424
## 🚨 TestLens detected 2 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/26640033077/job/78510289976?pr=15678) | :grails-test-examples-app1:test | BookControllerSpec > Test that the delete action deletes an instance if it exists | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/26640033077/job/78510289976?pr=15678) | :grails-test-examples-app1:test | BookControllerSpec > Test the save action correctly persists an instance | ❌ |
🏷️ Commit: bd1f997093e1aec4d3dac279090456e690a0ece6
▶️ Tests: 17167 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>BookControllerSpec > Test that the delete action deletes an instance if it exists</strong> (:grails-test-examples-app1:test in <a href="https://github.com/apache/grails-core/actions/runs/26640033077/job/78510289976?pr=15678">CI / Functional Tests (Java 25, indy=false)</a>)</summary>
```
Condition not satisfied:
Book.count() == 1
| | |
| 0 false
class functionaltests.Book
at functionaltests.BookControllerSpec.Test that the delete action deletes an instance if it exists(BookControllerSpec.groovy:157)
```
|expected|actual|
|---|---|
|<s>1</s>|<b>0</b>|
</details>
<details>
<summary><strong>BookControllerSpec > Test the save action correctly persists an instance</strong> (:grails-test-examples-app1:test in <a href="https://github.com/apache/grails-core/actions/runs/26640033077/job/78510289976?pr=15678">CI / Functional Tests (Java 25, indy=false)</a>)</summary>
```
Condition not satisfied:
Book.count() == 1
| | |
| 0 false
class functionaltests.Book
at functionaltests.BookControllerSpec.Test the save action correctly persists an instance(BookControllerSpec.groovy:74)
```
|expected|actual|
|---|---|
|<s>1</s>|<b>0</b>|
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 BookControllerSpec > Test that the delete action deletes an instance if it exists <!-- uniqueId=[engine:spock]/[spec:functionaltests.BookControllerSpec]/[feature:$spock_feature_0_6] -->
🔲 BookControllerSpec > Test the save action correctly persists an instance <!-- uniqueId=[engine:spock]/[spec:functionaltests.BookControllerSpec]/[feature:$spock_feature_0_2] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4587402113
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26718209347/job/78740630800?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: 96ee9018f61e168a30acd4b18998dcd17feae5e5
▶️ Tests: 26903 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26718209347/job/78740630800?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:175)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
| <org.grails.orm.hibernate.HibernateGormStaticApi@57d2ba9e identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@41224da1 qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@c67f2ca methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@4e23af92>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:175)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:79)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:73)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4581648968
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26674133866/job/78622934565?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: f06f97ef1ee2bc43a47ac2d37f4a873ea7cac152
▶️ Tests: 26872 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26674133866/job/78622934565?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
| <org.grails.orm.hibernate.HibernateGormStaticApi@30086a2b identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@7b5f62ab qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@68da057d methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@1b70637f>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4588988071
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26730579285/job/78773873625?pr=15678) | :grails-data-mongodb-core:test | MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy | ❌ |
🏷️ Commit: 6760ef3466aabb56767ee604ae15895542d8d72d
▶️ Tests: 41090 executed
🟡 Checks: 23/67 completed
### Test Failures
<details>
<summary><strong>MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26730579285/job/78773873625?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
org.grails.datastore.mapping.multitenancy.exceptions.TenantNotFoundException: No tenantId found
at org.grails.datastore.mapping.multitenancy.resolvers.SystemPropertyTenantResolver.resolveTenantIdentifier(SystemPropertyTenantResolver.groovy:42)
at org.grails.datastore.gorm.DefaultDatastoreSelector.select(GormApiResolver.groovy:372)
at org.grails.datastore.gorm.GormApiResolver.findDatastore(GormApiResolver.groovy:82)
at org.grails.datastore.gorm.GormRegistry$2.resolve(GormRegistry.groovy:780)
at org.grails.datastore.gorm.AbstractDatastoreApi.getDatastore(AbstractDatastoreApi.groovy:61)
at org.grails.datastore.gorm.AbstractGormApiRegistry.getDirect(AbstractGormApiRegistry.groovy:80)
at org.grails.datastore.gorm.GormRegistry.resolveStaticApi(GormRegistry.groovy:470)
at org.grails.datastore.gorm.GormRegistry.findStaticApi(GormRegistry.groovy:110)
at grails.gorm.MultiTenant$Trait$Helper.eachTenant(MultiTenant.groovy:58)
at org.grails.datastore.gorm.mongo.connections.MongoConnectionSourcesSpec.Test persist and retrieve entities with multi tenancy(MongoConnectionSourcesSpec.groovy:66)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 MongoConnectionSourcesSpec > Test persist and retrieve entities with multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.mongo.connections.MongoConnectionSourcesSpec]/[feature:$spock_feature_1_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4580312099
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26664582995/job/78595293084?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: 39eadadf0069853e1ea9700c438a45f54be6964d
▶️ Tests: 13981 executed
🟡 Checks: 21/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26664582995/job/78595293084?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
| <org.grails.orm.hibernate.HibernateGormStaticApi@128f487d identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@10f1cc85 qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@7a2b8e4c methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@120fedd4>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4596785034
## ✅ All tests passed ✅
🏷️ Commit: 343dd58fb3e98871ff525feabe46335acd3f7212
▶️ Tests: 60491 executed
⚪️ Checks: 75/75 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4529785328
## 🔎 No tests executed 🔎
🏷️ Commit: afa32a1f58bf435110363bb1c6b7205fcaa75a4c
▶️ Tests: 0 executed
⚪️ Checks: 2/2 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4811711172
Thanks for the detailed read — happy to connect the dots.
The single root cause is commit 8f1500dd03, which replaced GormEnhancer's per-entity static maps (one (entityClass, qualifier) → GormApi entry per entity × per connection — O(M×N) memory) with a single process-wide GormRegistry that resolves APIs on demand using a selector chain. Every other change in this PR is a downstream ripple from that one architectural swap. The two threads you named map to the two hardest ripples:
---
Thread 1 — Multi-tenancy resolution regressions
The old static maps gave each entity a direct pointer to its API for a given connection at enhancement time. The registry replaces that with a runtime selector chain (ActiveSession → Preferred → Qualified → Default). Several call sites assumed the old direct-lookup contract and started resolving to the wrong (usually default) datastore for non-default connections or tenants:
- Routing fixes (DatastoreResolver, GormApiResolver, ActiveSessionDatastoreSelector, PreferredDatastoreSelector): correct the selector chain for non-default connection/tenant resolution paths that the static maps used to short-circuit.
- Transaction changes (GormStaticApi.withTransaction(Map), GrailsHibernateTransactionManager): the withTransaction(Map) overload called definition.setProperty(k, v) — no such method on DefaultTransactionDefinition (a Java bean), which was silently tolerated before but now hits a hot path under registry routing. Also fixed GrailsHibernateTransactionManager to see child-datastore sessions when participating in a parent transaction.
- Mongo/Neo4j/Simple edits: each datastore previously managed its own static enhancement maps. This PR registers each with GormRegistry (registerDatastore() / registerApiFactory()) and adds the getDatastoreForTenantId fallback to MongoDatastore (the multi-tenancy tenant resolver was calling into the registry before the child datastore was registered). SimpleMapSession had a latent rollbackOnly bug (a rolled-back tx set a session-level flag that was never cleared) that the registry's new session-per-call paths surfaced.
- Test isolation changes (DataTestSetupInterceptor / DataTestCleanupInterceptor): the harness only bound a session for the default datastore. A non-default-connection entity now resolves to a dedicated child datastore — without a bound session, save() opened a throwaway per-call session that was discarded on return. The fix binds and unbinds a session per connection source (no-op for single-datasource specs).
---
Thread 2 — Child datastore initialization order
ChildHibernateDatastore.initialize() returned null in the 8.0.x-hibernate7 base — the child was intentionally not enhanced. Under the registry, each child must register its own APIs (so multi-datasource entities resolve to the right child). The new initialize() calls new HibernateGormEnhancer(this, txManager, settings, datastoresByConnectionSource). The critical ordering constraint: datastoresByConnectionSource in the parent must be populated before the child is constructed (the parent builds its connection map during its own initialize(), then calls new ChildHibernateDatastore(parent, ...)). The bindParent() / PARENT_HOLDER thread-local in ChildHibernateDatastore handles the case where getPrimaryDatastore() is called during the super-constructor chain before this.parent is assigned.
- TCK rewrites (GrailsDataTckManager): the manager now calls setTargetDatastore(childDatastore) after the parent initializes, so the TCK spec's manager.session and service lookups go to the right child. The domain-class list was changed from Set to List because entity registration order now matters for the registry's MappingContext traversal.
---
Two items that need explicit acknowledgment:
- Debug specs (DebugGetSpec, DebugGeoJSONDecodeSpec, etc. in grails-data-mongodb): these were written to isolate get() failures during root-cause investigation. Their underlying test logic is sound, but the Debug prefix and println calls shouldn't be merged. I'll rename them to production spec names and remove the debug output before this lands.
- Deleted cross-layer tests (CrossLayerMultiDataSourceSpec, CrossLayerMultiTenantMultiDataSourceSpec): these called manager.getServiceForConnection(SomeService, 'secondary') to fetch a service bean from the child datastore's Spring context — internal wiring that the registry no longer exposes that way. Rather than patching around a removed internal, the contract is now covered in two purpose-built specs: DomainMultiDataSourceSpec (domain-API routing to secondary) and DataServiceConnectionRoutingSpec (service routing via @Service(datasource='secondary')). The net line count for multi-datasource coverage went up, not down. That said, I can explicitly document the equivalence in the spec Javadoc if that helps reviewers verify the coverage isn't lost.
---
tl;dr: The PR is wider than a typical bug-fix because the root change was architectural — every datastore (H5, H7, Mongo, Neo4j, SimpleMap), the test harness, and the TCK had local copies of the enhancement pattern that all needed updating. The scope tracks the scope of the original GormRegistry rewrite.
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "jamesfredley (via GitHub)" <gi...@apache.org>.
jamesfredley commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4811256544
@borinquenkid I am seeing a bit more than expected in the PR including routing fixes, transaction changes, test isolation changes, Mongo/Neo4j/simple datastore edits, TCK rewrites, debug specs, and deleted cross-layer tests. Can you catch me up on how these relate to Multi-tenancy resolution regressions and Child datastore initialization order ?
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid closed pull request #15678: GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild)
URL: https://github.com/apache/grails-core/pull/15678
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4583379354
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26688203427/job/78660120630?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: bb3e117987b914031be608081b358c5dcc08de0f
▶️ Tests: 30989 executed
🟡 Checks: 22/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26688203427/job/78660120630?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
| <org.grails.orm.hibernate.HibernateGormStaticApi@66cc19b8 identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@62f28aa qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@42a65104 methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@44219131>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4535467096
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26407985224/job/77735800542?pr=15678) | :grails-datamapping-core:test | GormApiResolverSpec > resolver honors preferred datastore for default qualifier | ❌ |
🏷️ Commit: 611e6bd0df81eb344f6c9c30bea9c96952e1eaa5
▶️ Tests: 8559 executed
🟡 Checks: 21/67 completed
### Test Failures
<details>
<summary><strong>GormApiResolverSpec > resolver honors preferred datastore for default qualifier</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26407985224/job/77735800542?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition failed with Exception:
resolver.findDatastore(TestEntity, ConnectionSource.DEFAULT).is(preferredDatastore)
| | | | |
| | | | default
| | | interface org.grails.datastore.mapping.core.connections.ConnectionSource
| | class org.grails.datastore.gorm.GormApiResolverSpec$TestEntity
| java.lang.IllegalStateException: No GORM implementation configured for class [org.grails.datastore.gorm.GormApiResolverSpec$TestEntity]. Ensure GORM has been initialized correctly
| at org.grails.datastore.gorm.GormApiResolver.stateException(GormApiResolver.groovy:155)
| at org.grails.datastore.gorm.GormApiResolver.findDatastore(GormApiResolver.groovy:88)
| at org.grails.datastore.gorm.GormApiResolverSpec.resolver honors preferred datastore for default qualifier(GormApiResolverSpec.groovy:98)
<org.grails.datastore.gorm.GormApiResolver@60337d73 registry=org.grails.datastore.gorm.GormRegistry@324585e5 stateRegistry=org.grails.datastore.gorm.GormEnhancerRegistry@4f1093bd preferredDatastoreSelector=org.grails.datastore.gorm.PreferredDatastoreSelector@34b3a7c9 qualifiedDatastoreSelector=org.grails.datastore.gorm.QualifiedDatastoreSelector@6999e04d activeSessionDatastoreSelector=org.grails.datastore.gorm.ActiveSessionDatastoreSelector@776d3a36 defaultDatastoreSelector=org.grails.datastore.gorm.DefaultDatastoreSelector@3c2bc21d>
at org.grails.datastore.gorm.GormApiResolverSpec.resolver honors preferred datastore for default qualifier(GormApiResolverSpec.groovy:98)
Caused by: java.lang.IllegalStateException: No GORM implementation configured for class [org.grails.datastore.gorm.GormApiResolverSpec$TestEntity]. Ensure GORM has been initialized correctly
at org.grails.datastore.gorm.GormApiResolver.stateException(GormApiResolver.groovy:155)
at org.grails.datastore.gorm.GormApiResolver.findDatastore(GormApiResolver.groovy:88)
... 1 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 GormApiResolverSpec > resolver honors preferred datastore for default qualifier <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.GormApiResolverSpec]/[feature:$spock_feature_0_4] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4598673833
## ✅ All tests passed ✅
🏷️ Commit: 013e9aa615dd86c0f6bda3ec794cbaad4e12f4d7
▶️ Tests: 41389 executed
⚪️ Checks: 75/75 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "jamesfredley (via GitHub)" <gi...@apache.org>.
jamesfredley commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4813042438
@borinquenkid I think something laser targeted to `O(entityCount * qualifierCount)` like https://github.com/apache/grails-core/pull/15771, will be much easier to get the required reviews and merged.
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "jamesfredley (via GitHub)" <gi...@apache.org>.
jamesfredley commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4811162429
taking a look now, I use multi-tenant in a few apps
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4583561942
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26689995923/job/78664785597?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: ed6b99339e684cd82314473e92c5f7878a4098aa
▶️ Tests: 30304 executed
🟡 Checks: 21/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26689995923/job/78664785597?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:175)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
| <org.grails.orm.hibernate.HibernateGormStaticApi@44de1b15 identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@2fcc4f3c qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@6e399558 methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@5a8b2d39>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:175)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4795124156
## [Codecov](https://app.codecov.io/gh/apache/grails-core/pull/15678?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 19.0184%. Comparing base ([`0a334c8`](https://app.codecov.io/gh/apache/grails-core/commit/0a334c8bf30dc7ec2ea6085cdcf55d1811b72892?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`f50cb5c`](https://app.codecov.io/gh/apache/grails-core/commit/f50cb5ca30b742137c459119fcbe5b94ac5fb3d7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
<details><summary>Additional details and impacted files</summary>
[](https://app.codecov.io/gh/apache/grails-core/pull/15678?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
```diff
@@ Coverage Diff @@
## 8.0.x #15678 +/- ##
===================================================
- Coverage 49.2583% 19.0184% -30.2399%
+ Complexity 16506 288 -16218
===================================================
Files 1941 57 -1884
Lines 92023 3423 -88600
Branches 16062 597 -15465
===================================================
- Hits 45329 651 -44678
+ Misses 39649 2642 -37007
+ Partials 7045 130 -6915
```
[see 1884 files with indirect coverage changes](https://app.codecov.io/gh/apache/grails-core/pull/15678/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
</details>
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4564304464
## 🚨 TestLens detected 9 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a many-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name > input for a one-to-one property does have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name > input for a many-to-many property doesn\'t have \`.id\` at the end of the name | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-many property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a many-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > input for a \#description property is a select > input for a one-to-one property is a select | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-many property with a value of [Homer Simpson] has the correct option selected | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a many-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678) | :grails-fields:test | DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected | ❌ |
🏷️ Commit: 68af192470b4bf54e3ddf5992d6d1d778132c1c2
▶️ Tests: 3464 executed
🟡 Checks: 16/66 completed
### Test Failures
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a many-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property does have `.id` at the end of the name > input for a one-to-one property does have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property does have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:485)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property doesn't have `.id` at the end of the name > input for a many-to-many property doesn't have `.id` at the end of the name</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property doesn't have `.id` at the end of the name(DefaultInputRenderingPersistentSpec.groovy:466)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-many property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a many-to-one property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > input for a #description property is a select > input for a one-to-one property is a select</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
people.every { output =~ /option value="$it.id" >$it.name/ }
| |
| false
[Bart Simpson, Homer Simpson, Monty Burns]
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.input for a #description property is a select(DefaultInputRenderingPersistentSpec.groovy:445)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a many-to-many property with a value of [Homer Simpson] has the correct option selected</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
output =~ /option value="${people[1].id}" selected="selected" >${people[1].name}/
| | | | | | | |
| | | | 2 | | Homer Simpson
| | | Homer Simpson | Homer Simpson
| | | [Bart Simpson, Homer Simpson, Monty Burns]
| | [Bart Simpson, Homer Simpson, Monty Burns]
| java.util.regex.Matcher[pattern=option value="2" selected="selected" >Homer Simpson region=0,54 lastmatch=]
<select name="prop" id="prop" multiple="" >
</select>
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.select for a #description property with a value of #value has the correct option selected(DefaultInputRenderingPersistentSpec.groovy:525)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a many-to-one property with a value of Homer Simpson has the correct option selected</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
output =~ /option value="${people[1].id}" selected="selected" >${people[1].name}/
| | | | | | | |
| | | | 2 | | Homer Simpson
| | | Homer Simpson | Homer Simpson
| | | [Bart Simpson, Homer Simpson, Monty Burns]
| | [Bart Simpson, Homer Simpson, Monty Burns]
| java.util.regex.Matcher[pattern=option value="2" selected="selected" >Homer Simpson region=0,77 lastmatch=]
<select name="prop.id" id="prop" >
<option value="null"></option>
</select>
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.select for a #description property with a value of #value has the correct option selected(DefaultInputRenderingPersistentSpec.groovy:525)
```
</details>
<details>
<summary><strong>DefaultInputRenderingPersistentSpec > select for a #description property with a value of #value has the correct option selected > select for a one-to-one property with a value of Homer Simpson has the correct option selected</strong> (:grails-fields:test in <a href="https://github.com/apache/grails-core/actions/runs/26576078032/job/78295626268?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
Condition not satisfied:
output =~ /option value="${people[1].id}" selected="selected" >${people[1].name}/
| | | | | | | |
| | | | 2 | | Homer Simpson
| | | Homer Simpson | Homer Simpson
| | | [Bart Simpson, Homer Simpson, Monty Burns]
| | [Bart Simpson, Homer Simpson, Monty Burns]
| java.util.regex.Matcher[pattern=option value="2" selected="selected" >Homer Simpson region=0,77 lastmatch=]
<select name="prop.id" id="prop" >
<option value="null"></option>
</select>
at grails.plugin.formfields.DefaultInputRenderingPersistentSpec.select for a #description property with a value of #value has the correct option selected(DefaultInputRenderingPersistentSpec.groovy:525)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property does have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_23] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property doesn\'t have \`.id\` at the end of the name <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_22] -->
🔲 DefaultInputRenderingPersistentSpec > input for a \#description property is a select <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_21] -->
🔲 DefaultInputRenderingPersistentSpec > select for a \#description property with a value of \#value has the correct option selected <!-- uniqueId=[engine:spock]/[spec:grails.plugin.formfields.DefaultInputRenderingPersistentSpec]/[feature:$spock_feature_1_25] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4567535783
## 🚨 TestLens detected 2 failed tests 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/26596732370/job/78369535771?pr=15678) | :grails-test-examples-app1:test | BookControllerSpec > Test that the delete action deletes an instance if it exists | ❌ |
| [CI / Functional Tests \(Java 25, indy\=false\)](https://github.com/apache/grails-core/actions/runs/26596732370/job/78369535771?pr=15678) | :grails-test-examples-app1:test | BookControllerSpec > Test the save action correctly persists an instance | ❌ |
🏷️ Commit: c5f7c328543b9c466e1dab09f8a8042dae979b3c
▶️ Tests: 16570 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>BookControllerSpec > Test that the delete action deletes an instance if it exists</strong> (:grails-test-examples-app1:test in <a href="https://github.com/apache/grails-core/actions/runs/26596732370/job/78369535771?pr=15678">CI / Functional Tests (Java 25, indy=false)</a>)</summary>
```
Condition not satisfied:
Book.count() == 1
| | |
| 0 false
class functionaltests.Book
at functionaltests.BookControllerSpec.Test that the delete action deletes an instance if it exists(BookControllerSpec.groovy:157)
```
|expected|actual|
|---|---|
|<s>1</s>|<b>0</b>|
</details>
<details>
<summary><strong>BookControllerSpec > Test the save action correctly persists an instance</strong> (:grails-test-examples-app1:test in <a href="https://github.com/apache/grails-core/actions/runs/26596732370/job/78369535771?pr=15678">CI / Functional Tests (Java 25, indy=false)</a>)</summary>
```
Condition not satisfied:
Book.count() == 1
| | |
| 0 false
class functionaltests.Book
at functionaltests.BookControllerSpec.Test the save action correctly persists an instance(BookControllerSpec.groovy:74)
```
|expected|actual|
|---|---|
|<s>1</s>|<b>0</b>|
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 BookControllerSpec > Test that the delete action deletes an instance if it exists <!-- uniqueId=[engine:spock]/[spec:functionaltests.BookControllerSpec]/[feature:$spock_feature_0_6] -->
🔲 BookControllerSpec > Test the save action correctly persists an instance <!-- uniqueId=[engine:spock]/[spec:functionaltests.BookControllerSpec]/[feature:$spock_feature_0_2] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4524020695
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(ubuntu-latest, 25\)](https://github.com/apache/grails-core/actions/runs/26322035291/job/77492765758?pr=15678) | :grails-datamapping-core:test | ServiceTransformSpec > test service transform on abstract protected methods | ❌ |
🏷️ Commit: dcaff8688781bde7c854d9ef489eb78790907132
▶️ Tests: 3593 executed
🟡 Checks: 9/32 completed
### Test Failures
<details>
<summary><strong>ServiceTransformSpec > test service transform on abstract protected methods</strong> (:grails-datamapping-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26322035291/job/77492765758?pr=15678">CI / Build Grails-Core (ubuntu-latest, 25)</a>)</summary>
```
Condition failed with Exception:
impl.getMethod("findFoo", Serializable).getAnnotation(ReadOnly) == null
| | |
| | interface java.io.Serializable
| java.lang.NoSuchMethodException: $AbstractMyServiceImplementation.findFoo(java.io.Serializable)
| at java.base/java.lang.Class.getMethod(Class.java:2166)
| at grails.gorm.services.ServiceTransformSpec.test service transform on abstract protected methods(ServiceTransformSpec.groovy:228)
class $AbstractMyServiceImplementation
at grails.gorm.services.ServiceTransformSpec.test service transform on abstract protected methods(ServiceTransformSpec.groovy:228)
Caused by: java.lang.NoSuchMethodException: $AbstractMyServiceImplementation.findFoo(java.io.Serializable)
at java.base/java.lang.Class.getMethod(Class.java:2166)
... 1 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 ServiceTransformSpec > test service transform on abstract protected methods <!-- uniqueId=[engine:spock]/[spec:grails.gorm.services.ServiceTransformSpec]/[feature:$spock_feature_0_4] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "jamesfredley (via GitHub)" <gi...@apache.org>.
jamesfredley commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4814317283
And here is a targeted stab at Child datastore initialization order: https://github.com/apache/grails-core/pull/15776
Having 456 files in this PR makes it challenging for the team to review in a reasonable timeframe.
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "borinquenkid (via GitHub)" <gi...@apache.org>.
borinquenkid commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4819143993
Superseded by the restructured GormRegistry PR stack (feat/gorm-registry-core-impl, feat/gorm-registry-core-tests, and per-adapter PRs).
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4604516460
## ✅ All tests passed ✅
🏷️ Commit: 6293e80390ae8514461d3e4eeaacd6f93572abbb
▶️ Tests: 58550 executed
⚪️ Checks: 75/75 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4581428569
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26672382062/job/78618049478?pr=15678) | :grails-data-hibernate5-core:test | PartitionedMultiTenancySpec > Test partitioned multi tenancy | ❌ |
🏷️ Commit: 032095e86cc5c304a92c78f5ec07cf5aa4bb46a2
▶️ Tests: 17658 executed
🟡 Checks: 20/67 completed
### Test Failures
<details>
<summary><strong>PartitionedMultiTenancySpec > Test partitioned multi tenancy</strong> (:grails-data-hibernate5-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26672382062/job/78618049478?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Condition failed with Exception:
MultiTenantAuthor.withTenant("moreBooks").count() == 2
| | |
| | java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
| | at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
| | at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
| | at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
| | at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
| | at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
| | at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
| | at groovy.lang.Closure.call(Closure.java:433)
| | at groovy.lang.Closure.call(Closure.java:422)
| | at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
| | at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
| | at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
| <org.grails.orm.hibernate.HibernateGormStaticApi@64e22fda identityType=null classLoader=jdk.internal.loader.ClassLoaders$AppClassLoader@5a07e868 instanceApi=null defaultFlushMode=0 finders=[] persistentClass=class org.grails.orm.hibernate.connections.MultiTenantAuthor registry=org.grails.datastore.gorm.GormRegistry@51a99c36 qualifier=moreBooks mappingContext=org.grails.orm.hibernate.cfg.HibernateMappingContext@cd97f97 methods=null extendedMethods=null datastoreResolver=org.grails.orm.hibernate.HibernateGormStaticApi$1@79300d29>
class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy_closure4(PartitionedMultiTenancySpec.groovy)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.Test partitioned multi tenancy(PartitionedMultiTenancySpec.groovy)
Caused by: java.lang.IllegalArgumentException: Not an entity: class org.grails.orm.hibernate.connections.MultiTenantAuthor
at org.hibernate.metamodel.internal.MetamodelImpl.entity(MetamodelImpl.java:567)
at org.hibernate.query.criteria.internal.QueryStructure.from(QueryStructure.java:128)
at org.hibernate.query.criteria.internal.CriteriaQueryImpl.from(CriteriaQueryImpl.java:158)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count_closure6(AbstractHibernateGormStaticApi.groovy:238)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:331)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:275)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithNewSession(GrailsHibernateTemplate.java:176)
at org.grails.orm.hibernate.GrailsHibernateTemplate.executeWithExistingOrCreateNewSession(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:143)
at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.count(AbstractHibernateGormStaticApi.groovy:235)
at org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec.$tt__$spock_feature_0_0(PartitionedMultiTenancySpec.groovy:127)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.transactions.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:72)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:137)
at grails.gorm.transactions.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:69)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 PartitionedMultiTenancySpec > Test partitioned multi tenancy <!-- uniqueId=[engine:spock]/[spec:org.grails.orm.hibernate.connections.PartitionedMultiTenancySpec]/[feature:$spock_feature_0_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4585681958
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI / Build Grails-Core \(macos-latest, 21\)](https://github.com/apache/grails-core/actions/runs/26702877887/job/78698825684?pr=15678) | :grails-data-simple:test | SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode | ❌ |
🏷️ Commit: 4c158f4a7895e224656c7db97a86a5b520936941
▶️ Tests: 5638 executed
🟡 Checks: 18/67 completed
### Test Failures
<details>
<summary><strong>SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode</strong> (:grails-data-simple:test in <a href="https://github.com/apache/grails-core/actions/runs/26702877887/job/78698825684?pr=15678">CI / Build Grails-Core (macos-latest, 21)</a>)</summary>
```
org.grails.datastore.mapping.multitenancy.exceptions.TenantException: Could not assigned tenant id [null] to property [tenantId:java.lang.String (org.grails.datastore.mapping.model.types.mapping.TenantIdWithMapping)], probably due to a type mismatch. You should return a type from the tenant resolver that matches the property type of the tenant id!: No tenantId found
at org.grails.datastore.gorm.multitenancy.MultiTenantEventListener.onApplicationEvent(MultiTenantEventListener.java:142)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:448)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
at org.grails.datastore.gorm.GormValidationApi.fireEvent(GormValidationApi.groovy:261)
at org.grails.datastore.gorm.GormValidationApi.doValidate(GormValidationApi.groovy:166)
at org.grails.datastore.gorm.GormValidationApi.validate(GormValidationApi.groovy:217)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:189)
at org.grails.datastore.gorm.GormEntity$Trait$Helper.save(GormEntity.groovy:169)
at org.grails.datastore.mapping.simple.query.SimpleMapQuerySpec.test query isolation in DISCRIMINATOR mode_closure4(SimpleMapQuerySpec.groovy:104)
at groovy.lang.Closure.call(Closure.java:433)
at groovy.lang.Closure.call(Closure.java:422)
at grails.gorm.multitenancy.Tenants.withId_closure5(Tenants.groovy:328)
at grails.gorm.multitenancy.CurrentTenantHolder.withTenant(CurrentTenantHolder.groovy:90)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:311)
at grails.gorm.multitenancy.Tenants.withId(Tenants.groovy:208)
at org.grails.datastore.mapping.simple.query.SimpleMapQuerySpec.test query isolation in DISCRIMINATOR mode(SimpleMapQuerySpec.groovy:103)
Caused by: org.grails.datastore.mapping.multitenancy.exceptions.TenantNotFoundException: No tenantId found
at org.grails.datastore.mapping.multitenancy.resolvers.NoTenantResolver.resolveTenantIdentifier(NoTenantResolver.groovy:38)
at grails.gorm.multitenancy.Tenants.currentId(Tenants.groovy:124)
at org.grails.datastore.gorm.multitenancy.MultiTenantEventListener.onApplicationEvent(MultiTenantEventListener.java:126)
... 18 more
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 SimpleMapQuerySpec > test query isolation in DISCRIMINATOR mode <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.mapping.simple.query.SimpleMapQuerySpec]/[feature:$spock_feature_0_1] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4592487537
## 🚨 TestLens detected 1 failed test 🚨
Here is what you can do:
1) Inspect the test failures carefully.
2) If you are convinced that some of the tests are flaky, you can mute them below.
3) Finally, trigger a rerun by checking the rerun checkbox.
### Test Summary
| Check | Project/Task | Test | Runs |
|---|---|---|---|
| [CI - Groovy Joint Validation Build / build\_grails](https://github.com/apache/grails-core/actions/runs/26752845105/job/78845339663?pr=15678) | :grails-data-mongodb-core:test | SingleTenancySpec > Test no tenant id | ❌ |
🏷️ Commit: 0dc06b3a88088d2c7120da5ef49d9f0f34fe7bf7
▶️ Tests: 66284 executed
🟡 Checks: 51/67 completed
### Test Failures
<details>
<summary><strong>SingleTenancySpec > Test no tenant id</strong> (:grails-data-mongodb-core:test in <a href="https://github.com/apache/grails-core/actions/runs/26752845105/job/78845339663?pr=15678">CI - Groovy Joint Validation Build / build_grails</a>)</summary>
```
Expected exception of type 'org.grails.datastore.mapping.multitenancy.exceptions.TenantNotFoundException', but no exception was thrown
at org.spockframework.lang.SpecInternals.checkExceptionThrown(SpecInternals.java:84)
at org.spockframework.lang.SpecInternals.thrownImpl(SpecInternals.java:71)
at org.grails.datastore.gorm.mongo.connections.SingleTenancySpec.Test no tenant id(SingleTenancySpec.groovy:76)
```
</details>
### Muted Tests
> [!NOTE]
> Checks are currently running using the configuration below.
Select tests to mute in this pull request:
🔲 SingleTenancySpec > Test no tenant id <!-- uniqueId=[engine:spock]/[spec:org.grails.datastore.gorm.mongo.connections.SingleTenancySpec]/[feature:$spock_feature_1_0] -->
Reuse successful test results:
🔲 ♻️ Only rerun the tests that failed or were muted before
Click the checkbox to trigger a rerun:
🔲 **Rerun jobs**
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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] GORM: Shared Mapping Registry O(M+N) Scaling (clean rebuild) [grails-core]
Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #15678:
URL: https://github.com/apache/grails-core/pull/15678#issuecomment-4619519146
## ✅ All tests passed ✅
🏷️ Commit: 7b08ae134e759a7f1085a542c8eebc86f9a0aac4
▶️ Tests: 76851 executed
⚪️ Checks: 75/75 completed
---
_Learn more about TestLens at [testlens.app](https://testlens.app)._
--
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