fix: improve chainhead unpin operations #701
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.
This PR is to fix issue where
the logic watching for transaction inclusion was throwing the unpinned block erroras reported by @bkchr in #699Logic for checking transaction inclusion is supposed to not throwing out the
unpinned block erroras we'll need make sure to record usage for the blocks for body checking to make sure we don't accidentally unpin those blocks.We do record block usage for chain head operations but those are running in a queue which might be triggered after receiving the finalized events which cause the blocks to be unpinned before the block-usage recording kicks-in. We'll fix this by immediately record block usage before register chainhead operations into the queue.
We also increase the default minimum queue size to 16 as well, a better approach for later here is to adjust the queue size dynamically based to the number of finalized blocks each batch.