address client wallet hanging issues #1732
Merged
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.
We're clearly fighting some limitations of our
asset.Wallet
interface (no ctx args) and Go (nocontext.Merge
), but there are some smaller things we can do.The first commit adds some more context passing to avoid things getting hung and unable to cancel them. Some sensible timeouts are also established.
The second commit is a bit of a hack to prevent shutdown from becoming impossible if an RPC or something hangs and causes deadlock on the
trackedTrade
mutex.This PR is the basis for more extensive refactoring in #1739