This repository was archived by the owner on Jan 22, 2025. It is now read-only.
fix(rpc): recreate dead and uncleaned subscriptions#22281
Merged
CriesofCarrots merged 1 commit intosolana-labs:masterfrom Jan 5, 2022
Merged
fix(rpc): recreate dead and uncleaned subscriptions#22281CriesofCarrots merged 1 commit intosolana-labs:masterfrom
CriesofCarrots merged 1 commit intosolana-labs:masterfrom
Conversation
Codecov Report
@@ Coverage Diff @@
## master #22281 +/- ##
=======================================
Coverage 81.1% 81.1%
=======================================
Files 523 523
Lines 146705 146714 +9
=======================================
+ Hits 119012 119028 +16
+ Misses 27693 27686 -7 |
mergify Bot
pushed a commit
that referenced
this pull request
Jan 5, 2022
(cherry picked from commit c1995c6)
mergify Bot
pushed a commit
that referenced
this pull request
Jan 5, 2022
(cherry picked from commit c1995c6)
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Currently
SubscriptionTrackerpanics if there's aWeakpointer to a deadArc<SubscriptionTokenInner>. This happens due to a race condition betweenSubscriptionTracker::subscribemethod andSubscriptionTokenInnerDropimplementation since both are trying to acquire a write lock to the same DashMap shard (viaDashMap::entrymethod).Summary of Changes
SubscriptionTrackernow will recreate theSubscriptionTokenwith the same id if deadWeakis encountered.SubscriptionTokenInnerDropimplementation now checks that theWeakpointer is dead before removing it.Fixes #21948
Closes #22254