fix: delete of account via RPC throws while node account rescan is active #4867
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.
tl;dr: when called delete account on a node that is rescanning, head is deleted for the account before it is deleted from in memory store of
wallet.accounts
.Problem
RPC Client - delete account sent to remote node. Occasionally, node will crash saying head isn't set.
RCA:
Order of events that cause failure:
this.accounts.delete(account.id)
is not yet called.connect
is called,wallet.accounts
still contains account created from step 1/2.Testing Plan
Manual testing, difficult to reproduce.
Documentation
Does this change require any updates to the Iron Fish Docs (ex. the RPC API
Reference)? If yes, link a
related documentation pull request for the website.
Breaking Change
Is this a breaking change? If yes, add notes below on why this is breaking and label it with
breaking-change-rpc
orbreaking-change-sdk
.