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

[Cherry Pick] Fix race condition for transaction cache (#20875) #20882

Merged
merged 2 commits into from
Jan 14, 2025

Conversation

mystenmark
Copy link
Contributor

Bug was (likely) as follows:

  Reader thread               | Writer thread (state sync)

                                invalidate tickets
  get ticket
  miss cache
  read database
  insert to cache               insert to cache (racing)
  ticket is valid
  panic
                                write to database

The writer thread must insert to db first so that the db read
cannot find an old value while holding a valid ticket

Description

Describe the changes or additions included in this PR.

Test plan

How did you test the new or updated feature?


Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • gRPC:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:

Bug was (likely) as follows:

      Reader thread               | Writer thread (state sync)

                                    invalidate tickets
      get ticket
      miss cache
      read database
      insert to cache               insert to cache (racing)
      ticket is valid
      panic
                                    write to database

The writer thread must insert to db first so that the db read
cannot find an old value while holding a valid ticket
Copy link

vercel bot commented Jan 14, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
sui-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 14, 2025 6:23pm
2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
multisig-toolkit ⬜️ Ignored (Inspect) Visit Preview Jan 14, 2025 6:23pm
sui-kiosk ⬜️ Ignored (Inspect) Visit Preview Jan 14, 2025 6:23pm

@mystenmark mystenmark temporarily deployed to sui-typescript-aws-kms-test-env January 14, 2025 17:51 — with GitHub Actions Inactive
@ebmifa ebmifa temporarily deployed to sui-typescript-aws-kms-test-env January 14, 2025 18:21 — with GitHub Actions Inactive
@mystenmark mystenmark merged commit fea2f27 into releases/sui-v1.40.0-release Jan 14, 2025
51 checks passed
@mystenmark mystenmark deleted the mlogan-cp-20875 branch January 14, 2025 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants