-
Notifications
You must be signed in to change notification settings - Fork 834
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retry mechanism for block creation #4407
Conversation
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/core/MiningParameters.java
Show resolved
Hide resolved
...merge/src/main/java/org/hyperledger/besu/consensus/merge/blockcreation/MergeCoordinator.java
Show resolved
Hide resolved
retryBlockCreation(payloadIdentifier, blockCreator, remainingTime) | ||
.thenAccept( | ||
bestBlock -> { | ||
final var resultBest = validateBlock(bestBlock); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a lot could go wrong in here, should this be included in the retry code as well?
Maybe it's not an issue if it doesn't persist to the database though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good point, I need to review if the lock timeout exception could be triggered here as well
Signed-off-by: Fabio Di Fabio <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple more questions but no blockers
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio <[email protected]>
* Retry mechanism for block creation Signed-off-by: Fabio Di Fabio <[email protected]> * Update CHANGELOG Signed-off-by: Fabio Di Fabio <[email protected]> * Always keep 1 thread active in the computation executors Signed-off-by: Fabio Di Fabio <[email protected]> * Surface StorageException when building a block for finer filtering Signed-off-by: Fabio Di Fabio <[email protected]> * Log successful block created at info Signed-off-by: Fabio Di Fabio <[email protected]> * Reformat block proposal logs Signed-off-by: Fabio Di Fabio <[email protected]> * Remove test code Signed-off-by: Fabio Di Fabio <[email protected]> Signed-off-by: Fabio Di Fabio <[email protected]>
Signed-off-by: Fabio Di Fabio [email protected]
PR description
Retry block creation if there is a transient error and we still have time, to mitigate empty block issue, as describe here
#4401 (comment)
Fixed Issue(s)
mitigates #4401 when there is a
org.rocksdb.RocksDBException: TimedOut(LockTimeout)
Documentation
doc-change-required
label to this PR ifupdates are required.
Changelog