Comments (13)
The suspicious while was changed by @molnard in this commit: 5ea5805
Maybe some kind of leftover? I believe the thing to do is to remove it.
from walletwasabi.
Probably pls do it
from walletwasabi.
This is mysterious indeed, let's find out who was the murderer.
where the while is suspicious as there is also break.
The while
makes no sense - it is left over by me. I assumed that if an exception is thrown here it is a fatal one - we won't try anything again.
The case of P2P interaction throwing an exception
Not all BlockProvider.GetBlockAsync
makes sense to retry. Retrying should be done on a lower level. If it throws that means there is no way to get the block.
from walletwasabi.
The case of P2P interaction throwing an exception
Not all
BlockProvider.GetBlockAsync
makes sense to retry. Retrying should be done on a lower level. If it throws that means there is no way to get the block.
My concern here is only:
- You start WW and log in to your wallet
- A block cannot be downloaded because, say, your Internet connection is down.
Now what does happen next? Do we recover from this once the Internet connection is up again? I guess we will perform synchronization as usually. Is it the idea?
from walletwasabi.
I'm concerned by "doing nothing" in case of an exception because failing to get a block would mean releasing HandleFiltersLock
so new filters will be processed on all keys without finishing the synchronization.
from walletwasabi.
The only way to have an exception right now is when RemoveAndStopAllAsync
from the WalletManager
is called
So this is not really an issue. There is no other way because the P2PBlockProvider
never returns null
, so TryGetBlockAsync
never returns null
when GetBlockAsync
is called from the SmartBlockProvider
, therefore GetBlockAsync
can't throw.
from walletwasabi.
Do we recover from this once the Internet connection is up again?
No. The wallet sync stops at that point and will never continue again.
Is it the idea?
There is no current idea for this case. We put a log message, that is all.
from walletwasabi.
I'm concerned by "doing nothing" in case of an exception because failing to get a block would mean releasing HandleFiltersLock so new filters will be processed on all keys without finishing the synchronization.
What if we go to an infinite loop until the sync can be finished actually? Maybe this was @turbolay your original intention?
from walletwasabi.
Maybe this was @turbolay your original intention?
Yes this was my original solution.
from walletwasabi.
@turbolay can you add that back?
- Keep the design of
PerformFinalSynchronizationAsync
cannot throw just log - this is to avoidUnboservedTaskException
. - Add an infinite loop around
PerformWalletSynchronizationAsync
.- Consequence: in case of an error we won't be able to process new filters but the wallet cannot get into a broken state.
WDYT?
from walletwasabi.
Related Issues (20)
- [VDG] Self transfer Preview Transaction and Transaction Details issues
- `FailFastTransactionSigningTimeout` is too short HOT 4
- `OutputRegistrationTimeout` and `TransactionSigningTimeout` in status are misleading HOT 2
- TOR takes long time to recover HOT 7
- [VDG] Destination addresses for incoming transactions HOT 3
- Wallet wrongly relies on `OutputRegistationTimeout` and `TransactionSigningTimeout` HOT 3
- Wallet Coins: single click acts as double click in SelectionCheckBox
- Missing permissions for Flatpak HOT 3
- Convert regression tests to use a builder pattern
- Cannot See UTXO / Coin Selection screen (CTRL C D) HOT 9
- GUI Rants HOT 5
- Publish prison related constants in status
- history, balance and privacy progress tile values always jump after wallet load with "SkipSynchronization": true HOT 2
- Normal and HW Wallet icon got switched up HOT 5
- Refactor welcome screens logic HOT 1
- Allow user to disable auto-cj when importing a wallet HOT 3
- Test vectors for v2.0.4 HOT 5
- "Insufficient funds eligible for coinjoin" message is misleading/confusing when coins are unconfirmed
- Warn users before spending unconfirmed coinjoin utxos HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from walletwasabi.