Handle block count RPC error gracefully #1637
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.
If we fail to fetch the block count, it will just return an error from
update_index
with a JSON-RPC error. However, any uncommitted blocks will not be committed because it doesn't exit the loop. They will have to be indexed again.This PR will just log the error but continue indexing, so we can keep our cache. It will show a progress greater than 100%, but better than having a JSON-RPC error and uncommitted blocks.
The json-rpc client times out and fails if it's not used for a long time, like during a long index update. Since a new client is created to fetch blocks in the background, the
index.client
is not used until near the end, where it already timed out.