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

clearing extension cache isn't working properly #1496

Open
Tracked by #1376
TalDerei opened this issue Jul 17, 2024 · 1 comment
Open
Tracked by #1376

clearing extension cache isn't working properly #1496

TalDerei opened this issue Jul 17, 2024 · 1 comment
Labels
bug Something isn't working sync

Comments

@TalDerei
Copy link
Contributor

refreshing the extension cache on the mainnet displays irregular behaviors, possibly leading to unpredictable cache states and causing synchronization issues. Refreshing the cache should immediately start resyncing rather than throwing an error and navigating back to the onboarding page.

cc @turbocrime

Screen.Recording.2024-07-17.at.3.21.35.AM.mov
@TalDerei TalDerei added the bug Something isn't working label Jul 17, 2024
@turbocrime
Copy link
Contributor

turbocrime commented Jul 19, 2024

this is mostly due to the way prax runs services, and this should probably be filed as a series of prax issues.

currently, there prax implements no good way to ensure that the block processor and wallet services are killed and cleaned up properly, so to achieve this prax just restarts its background worker. this is very effective but ungraceful.

restarting the background worker breaks all the content scripts. then, the immediate next thing that happens is the background worker begins genesis sync again, which due to single-threadedness blocks the listeners that would normally init the new content scripts, and the rpc services that would serve requests.

a few things need to happen to make this nicer

  1. abort controllers for all wallet services
  2. content scripts that handle loss of context
  3. better abort signalling for content scripts add abort signalling and controls to transport #1517

and ideally,

  1. independent worker for rpc services
  2. independent worker for block processor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sync
Projects
Status: 🗄️ Backlog
Development

No branches or pull requests

2 participants