-
Notifications
You must be signed in to change notification settings - Fork 23
feat: enhance subscription management with metrics and reconnection #621
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
Merged
Merged
Changes from all commits
Commits
Show all changes
114 commits
Select commit
Hold shift + click to select a range
999953c
chore: subscribe sequentially and remove possible LRU cache race cond…
thlorenz a0774c2
fix: cleanup subscriptions and resubscribe on upstream connection close
thlorenz fb6e73e
feat: sub metrics via LRU cache
thlorenz dae6cc4
feat: clients also return subscription count
thlorenz 7ecfc4a
chore: warn if LRU cache count is not matching pubsub count
thlorenz 533ccde
chore: fix unsub on already evicted + metric counts
thlorenz 638622d
chore: log discrepant account
thlorenz f6a0270
chore: don't remove pubkey from LRU cache if unsub fails
thlorenz 402e0b7
chore: only removing sub when unsubscribe completed
thlorenz 8d31a09
chore: improve subs logging
thlorenz 754663f
chore: simplify unsub and remove invalid resub
thlorenz 7943a7d
chore: eliminate sub/unsub race condition
thlorenz 361b0da
chore: prevent overwriting existing sub
thlorenz 33430a3
chore: tracing fetch + subs for cleaner debug logs
thlorenz 98351e7
chore: minor comments
thlorenz 56e05f5
chore: update correct metric + log on info for now
thlorenz 399c37d
chore: add metrics query to test context
thlorenz d12b74f
chore: add manual ix test to diagnose subscriptions
thlorenz 0d638f4
chore: merge bmuddha/fix/ws-reconnects, adjusting the changes
thlorenz 5ec5287
chore: adding warn logs when recverr occurs
thlorenz e64166c
chore: fix max log level override
thlorenz 07b170e
chore: more robust handling of fetch failure
thlorenz 0c7a7cd
chore: fix recycle connections deadlock
thlorenz 21f91d1
chore: clippy
thlorenz cf69692
fix: the extra task was overkill and not awaited
thlorenz c193be6
chore: log delegation issues on debug
thlorenz 9dce1a9
fix: rely on cancellation tokens, remove join_set to fix endles recyc…
thlorenz 9f0a972
chore: recycle with backoff
thlorenz 7d635c4
chore: try to resub before recycle
thlorenz bf366ae
chore: pubsub client includes client id in all logs
thlorenz a4984d4
feat: better orchestrated reconnection logic
thlorenz fece0cd
chore: test reconnection logic
thlorenz cf9082a
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz 6283d23
chore: fmt ix tests
thlorenz 889c46e
chore: clarifying comment
thlorenz 22c1817
chore: fix reconnect ix test
thlorenz 1058443
chore: logging precise info about which kind of accounts were in bank…
thlorenz 31b49e5
chore: defensive refetch of accounts we should have been watching
thlorenz a81e9bb
chore: ensure we don't count removed accounts twice
thlorenz 7fd5ec6
chore: more logs
thlorenz 2bdd9ff
chore: debug fetched accounts
thlorenz 908733f
chore: more info when removing account from bank
thlorenz 37b9d32
chore: triaging those empty accounts
thlorenz b284277
chore: minor cleanup
thlorenz c9c7f8d
fix: rollback LRU entry when eviction unsubscribe fails
thlorenz fdbaed2
fix: error handling in subscription limits test to propagate task pan…
thlorenz 405d4ff
fix: incorrect non-empty account count in chainlink logging
thlorenz 3e7b400
chore: lint + fmt
thlorenz 3bc011d
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz 61d475a
chore: less fetch account chatter on debug
thlorenz 14ecd09
fix: don't persist empty accounts after txn execution
bmuddha 8714d6a
chore: fix stale comments
thlorenz ab75627
fix: preserve concurrent fetch waiters in remote account provider
thlorenz 4ef27a0
fix: log level issue
thlorenz 7dd4665
fix: account overwrite issue
thlorenz ef698ee
chore: remove redundant fetch_sub call in magicblock-chainlink/src/ch…
thlorenz ca4f9c7
chore: stop spamming debug with not found accounts
thlorenz 7b5a481
chore: less frequent sub metric update but with more info
thlorenz 765c31f
chore: adding metrics for account fetches
thlorenz 7490687
chore: log more info for mincontext slot fetch failure
thlorenz 0279b24
chore: fix metrics suffixes
thlorenz 5ebf091
fix(metrics): drain the connection of request body
bmuddha d9d5ee5
fix: found vs not-found metric counting
thlorenz 77c33e1
fix: use more realistic slot for program deploy
thlorenz 2cea109
chore: blacklist native token program
thlorenz c0e98fb
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz 9e9e14a
chore: enable ledger size metric
thlorenz 917f177
chore: fix clippy
thlorenz 1f2d684
chore: more logs around undelegate requests
thlorenz 0b1b245
chore: verifying completed undelegation in intent tests
thlorenz 7880a7d
feat: add undelegation requested/completed metrics
thlorenz 9f8a0b2
fix: move delete onto separate thread
taco-paco 021ef0d
chore: fix conditition to inc delegation complete
thlorenz a8900e1
fix: use the latest SVM with gasless feepayer check
bmuddha 0a042a3
ci: trigger synchronize
8f2e12b
fix: check for privileged mode when filtering empty accounts
bmuddha 82f4248
chore: fix lint
thlorenz ae73b6d
chore: add extra check that unescrowed payer cannot pay/write for tx
thlorenz e1e6b15
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz 37d6839
Revert "fix: use the latest SVM with gasless feepayer check"
thlorenz e7c8a03
fix: post execution check for feepayer mutation
bmuddha c6f75fd
fix: perform feepayer modification check with privileged exception
bmuddha 7162b3b
fix: cleanup print logs
bmuddha 5e66fa2
fix: allow feepayer mutations if delegated
bmuddha a7a1eaa
Allow not existing feepayer in gasless mode (#631)
GabrielePicco 9118600
feat: add eviction metric to the chainlink LRU
bmuddha 308c1ff
feat: re-add auto airdrop (#632)
GabrielePicco 91683be
feat: add metrics for multiple account requests investigation
taco-paco 13b048e
fix: promotion of accounts that are already subscribed
thlorenz 1f11b83
hotfix: remove all accounts owned by delegation program on restart
thlorenz 3b9496a
chore: ignore tests that depend on transfers from escrow accounts
thlorenz 968e82d
chore: fix sub with overflow issue in test
thlorenz 2cdfe4f
chore: fix bump in test
thlorenz e80ffc3
chore: log level fix
thlorenz 4c29cd3
chore: ensure sub before adding to LRU cache
thlorenz 4d433fb
chore: skip rare case undeleg/redeleg test for now
thlorenz 66432ad
chore: remove stray debug print
thlorenz 87a00bb
chore: fix minor nits
thlorenz 30262bf
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz ee3a330
chore: hoping to unflake failing chainlink test
thlorenz 451effe
chore: retrying during failing test
thlorenz 7f027b4
chore: add metrics for unborking process
thlorenz a2694c9
chore: upgrade to latest solana-account
thlorenz ec29722
chore: initial unborking impl
thlorenz c4f5dbd
chore: fix typo in metrics method name
thlorenz 9fc5335
fix: clippy
thlorenz 46ee1ed
chore: proper evict counter
thlorenz 14228a6
chore: increase sleep to hopefully pass redelegation tests
thlorenz c288d2b
Update magicblock-processor/src/executor/processing.rs
thlorenz 006676a
chore: fmt
thlorenz f9f737c
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz b627817
Merge branch 'master' into thlorenz/subscription-metrics
thlorenz 521fbc1
chore: harden chainlink test
thlorenz 9d2ba69
chore: fix dropped receiver in tests
thlorenz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
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
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
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
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.
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.
🧹 Nitpick | 🔵 Trivial
Consider adding a comment explaining the blacklisting rationale.
Similar to
NATIVE_SOL_ID(lines 10-11), consider adding a comment explaining why the SPL Token program account is being blacklisted. This helps future maintainers understand the intent.Example:
📝 Committable suggestion
🤖 Prompt for AI Agents