-
Notifications
You must be signed in to change notification settings - Fork 47
fix(incarnation-sapere): fix race condition in LsaNode causing ConcurrentModificationException in GraphQL subscriptions #4789
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
contents
in GraphQL Query/Subscription743a663
to
778d22f
Compare
@copilot can you add a test in the graphql module that triggers the original problem, verify that it does indeed trigger the problem, and make sure that your patch solves? Because I think the problem here could be more general: access to the environment should be performed using the simulation thread, or the risk of race conditions is always there. |
I've added a comprehensive test in the GraphQL module that reproduces the original race condition and verifies the fix works: Test created: What the test does:
Verification of fix:
The test specifically targets the GraphQL access pattern that was causing the race condition: Commit: 793deb8 |
66fed3b
to
2fced34
Compare
@copilot build fails:
|
... Fixed the Detekt SwallowedException lint issues by adding proper logging to the exception handlers in the GraphQL concurrency test. The test continues to work correctly, successfully completing 20,000 concurrent operations (10,000 reads + 10,000 writes) with 0 ConcurrentModificationExceptions, verifying that the race condition fix is working as expected. Commit: 4bbab22 |
Please retry analysis of this Pull-Request directly on SonarQube Cloud |
ccbe9ff
to
5ea60cb
Compare
b4df144
to
43e57de
Compare
…ons in GraphQL Co-authored-by: DanySK <[email protected]>
…or LsaNode race condition Co-authored-by: DanySK <[email protected]>
…ency test Co-authored-by: DanySK <[email protected]>
…urrencyTest Co-authored-by: DanySK <[email protected]>
Removed check for empty SAPERE nodes and added assertion to ensure nodes are available before proceeding with the test.
…ic final fields Co-authored-by: DanySK <[email protected]>
43e57de
to
5e0a9ac
Compare
|
## [42.3.10](42.3.9...42.3.10) (2025-10-14) ### Dependency updates * **deps:** update danysk/makepkg docker tag to v2.0.8 ([#4864](#4864)) ([f518523](f518523)) * **deps:** update dependency scalafmt to v3.10.0 ([#4868](#4868)) ([b506b60](b506b60)) * **deps:** update plugin com.gradle.develocity to v4.2.2 ([#4867](#4867)) ([077a866](077a866)) * **deps:** update react to v2025.10.6-19.2.0 (patch) ([#4865](#4865)) ([bf44cee](bf44cee)) * **deps:** update react to v2025.10.7-19.2.0 (patch) ([#4866](#4866)) ([400d9e7](400d9e7)) ### Bug Fixes * **incarnation-sapere:** fix race condition in LsaNode causing ConcurrentModificationException in GraphQL subscriptions ([#4789](#4789)) ([1899c20](1899c20)) ### General maintenance * **build:** update the javadoc.io cache ([c778be2](c778be2)) * **build:** update the javadoc.io cache ([1ee4714](1ee4714))
🎉 This PR is included in version 42.3.10 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.