fix(rpc): isolate circuit breaker per chain+host#7492
Merged
jrainville merged 6 commits intoJun 4, 2026
Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes RPC circuit breaker isolation so failures on a shared RPC host do not affect other chains using the same host, while preserving host-level RPS limiting.
Changes:
- Generates circuit breaker names per
host + chainID. - Keeps RPS limiter sharing per host across chains.
- Adds test coverage for circuit name isolation and limiter sharing.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
internal/rpc/client.go |
Separates circuit breaker naming from RPS limiter keys. |
internal/rpc/client_test.go |
Verifies circuit names are chain-specific and limiters remain host-shared. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Member
Jenkins BuildsClick to see older builds (21)
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## release/10.34.x #7492 +/- ##
==================================================
Coverage ? 61.28%
==================================================
Files ? 850
Lines ? 119055
Branches ? 0
==================================================
Hits ? 72961
Misses ? 38630
Partials ? 7464
Flags with carried forward coverage won't be shown. Click here to find out more.
|
saledjenic
approved these changes
Jun 4, 2026
friofry
force-pushed
the
ab/issue-20243-rm-providers-fixkatana-fallback
branch
from
June 4, 2026 12:47
3755b24 to
cdbc5aa
Compare
friofry
changed the base branch from
ab/issue-20243-rm-providers-legacyproxy
to
release/10.34.x
June 4, 2026 12:48
Contributor
Author
This was referenced Jun 4, 2026
Drop CryptoCompare provider wiring and its tests, and remove market proxy credentials that were only used by the CryptoCompare proxy path.
Remove embedded-proxy provider generation and related auth/config plumbing, keeping smart proxy and direct providers as the supported RPC paths.
DefaultRPCURL/DefaultFallbackURL/DefaultFallbackURL2 were only ever populated by the removed embedded-proxy path and are read nowhere, so drop them from the Network struct and the assertions that checked they stayed empty.
The RPC provider circuit name was derived from the RPS-limiter key, which is empty when the limiter is disabled (e.g. the smart proxy). An empty circuit name makes the circuit breaker execute the provider directly without a circuit, so a provider that consistently fails for a given chain (e.g. a proxy with no backend for that chain) keeps being retried on every request instead of being short-circuited to the fallback. Always derive a non-empty circuit name isolated per chain+host so the breaker can open for a consistently failing endpoint without affecting other chains that share the same host. The RPS limiter remains intentionally shared per host.
friofry
force-pushed
the
ab/issue-20243-rm-providers-fixkatana-fallback
branch
from
June 4, 2026 15:17
ecc11ac to
7088786
Compare
friofry
force-pushed
the
ab/issue-20243-rm-providers-fixkatana-fallback
branch
from
June 4, 2026 17:15
7088786 to
109ce64
Compare
✅ Companion PR Verified |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes status-im/status-app#21042
Includes:
status-app pr: status-im/status-app#21076