-
Notifications
You must be signed in to change notification settings - Fork 10
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
fix(model-server): deadlock caused by non-existing lock ordering #1235
Conversation
Test Results 193 files 193 suites 36m 14s ⏱️ Results for commit cfebf70. ♻️ This comment has been updated with latest results. |
0bd26e3
to
a35fd24
Compare
JVM coverage report
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
detekt found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
a35fd24
to
ecb268a
Compare
b9ffc38
to
cdbbae6
Compare
model-server/src/main/kotlin/org/modelix/model/server/handlers/IRepositoriesManager.kt
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/handlers/IRepositoriesManager.kt
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/handlers/IRepositoriesManager.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/handlers/KeyValueLikeModelServer.kt
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/store/IImmutableStore.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/store/IStoreClient.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/store/StoreClientAdapter.kt
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/handlers/RepositoriesManager.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/handlers/RepositoriesManager.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/store/IgniteStoreClient.kt
Outdated
Show resolved
Hide resolved
model-server/src/main/kotlin/org/modelix/model/server/store/IgniteStoreClient.kt
Show resolved
Hide resolved
09c1af7
to
d17a384
Compare
d17a384
to
ed9bd6d
Compare
model-server/src/main/kotlin/org/modelix/model/server/handlers/ui/DiffView.kt
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only found one issue in DiffView
. Everything else looks good.
…issingTransactionException
🎉 This PR is included in version 10.2.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Replaced the fine-grained entry based locking strategy (which would require lock ordering) of Ignite by a single ReentrantReadWriteLock similar to how MPS does it.
This only works if there is a single model-server instance, but there is an open issue for supporting multiple instances anyway (https://issues.modelix.org/issue/MODELIX-344/Support-multiple-model-server-instances), meaning it's currently already unsupported for other reasons.A IgniteSemaphore is now used to implement a cluster-wide read/write lock.