Skip to content
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 and Cover Eager Conflict Resolution Deadlock #674

Open
wants to merge 21 commits into
base: matt-ramotar/turbine
Choose a base branch
from

Conversation

matt-ramotar
Copy link
Collaborator

@matt-ramotar matt-ramotar commented Nov 18, 2024

Depends on #672

Closes #667
Closes #578

This PR is fixing a deadlock in eager conflict resolution. To improve testability, this PR also:

  • Extracts logging into an interface and provides a default implementation to the RealMutableStore
  • Adds dependencies on Turbine and Mokkery

@matt-ramotar matt-ramotar force-pushed the matt-ramotar/eager-conflict-resolution branch from 5d7ffca to 6ebaf2b Compare November 18, 2024 01:22
@matt-ramotar matt-ramotar force-pushed the matt-ramotar/eager-conflict-resolution branch from 9dd28e7 to 37019fd Compare November 24, 2024 05:51
Copy link

codecov bot commented Nov 24, 2024

Codecov Report

Attention: Patch coverage is 86.84211% with 5 lines in your changes missing coverage. Please review.

Project coverage is 77.82%. Comparing base (f76e371) to head (26791af).

Files with missing lines Patch % Lines
...vefoundation/store/store5/impl/RealMutableStore.kt 86.20% 1 Missing and 3 partials ⚠️
...ativefoundation/store/store5/impl/DefaultLogger.kt 85.71% 1 Missing ⚠️
Additional details and impacted files
@@                   Coverage Diff                    @@
##           matt-ramotar/turbine     #674      +/-   ##
========================================================
+ Coverage                 75.43%   77.82%   +2.39%     
========================================================
  Files                        38       40       +2     
  Lines                       920      929       +9     
  Branches                    169      171       +2     
========================================================
+ Hits                        694      723      +29     
+ Misses                      142      124      -18     
+ Partials                     84       82       -2     
Files with missing lines Coverage Δ
.../org/mobilenativefoundation/store/store5/Logger.kt 100.00% <100.00%> (ø)
...ilenativefoundation/store/store5/impl/RealStore.kt 88.72% <100.00%> (ø)
...ativefoundation/store/store5/impl/DefaultLogger.kt 85.71% <85.71%> (ø)
...vefoundation/store/store5/impl/RealMutableStore.kt 71.65% <86.20%> (+11.33%) ⬆️

... and 2 files with indirect coverage changes

Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
This reverts commit f94a8aa.

Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
This reverts commit f9379b2.

Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
Signed-off-by: matt-ramotar <matt.ramotar@uber.com>
@matt-ramotar matt-ramotar force-pushed the matt-ramotar/eager-conflict-resolution branch from 8c96093 to 26791af Compare November 27, 2024 18:10
@matt-ramotar matt-ramotar changed the base branch from main to matt-ramotar/turbine November 27, 2024 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🆕 Triage
Development

Successfully merging this pull request may close these issues.

[BUG] Deadlock in tryEagerlyResolveConflicts [BUG] Deadlock during synchronization in MutableStore
1 participant