-
Notifications
You must be signed in to change notification settings - Fork 863
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
Incorrectly returned INVALID for ropsten block #4512
Comments
from the above logs I can't tell what the exception was the second time ie why besu is returning spotted this TODO which may be related? Line 222 in e179b86
does it make sense to only log one invalid block per minute? or do we need a different timing mechanism for this? Line 261 in e179b86
|
Yeah, agree with what Sally found. Even if we were suppressing invalid block messages to one per minute, we don't see any at all. I was going to add more logging on INVALID, but its already there. |
adjustment to logging #4520 |
I'm pretty sure the problem is that Besu is failing to import on the first try because of an internal error and incorrectly adding the block to the bad block list. So when Teku retries it responds INVALID because it's already in the known bad block list. Why do I think this, because someone helpfully added a TODO that pointed out exactly how this is broken. :) besu/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/MainnetBlockValidator.java Line 153 in 016016d
if (result.causedBy().isPresent()) {
LOG.info("{}. Block {}, caused by {}", reason, invalidBlock.toLogString(), result.causedBy());
// TODO: if it's an internal error, don't add it
badBlockManager.addBadBlock(invalidBlock);
return new Result(reason, result.causedBy().get()); |
ROUGH To-Do lol |
Reopening this one. It's recurred with 22.7.7 on goerli:
|
Reformatted logging output. |
The block was being added to badblock manager due to an exception during validation, as opposed to execution. Line 350 in 33a0188
The results classes are different, and are handled differently. Will reafactor to have execution results extend validation results, and handle them in one place. |
Report from
|
Description
On one of our ropsten nodes, besu incorrectly returned
INVALID
with a 0x0000 latestValidHash for beacon block 957088 (root 0x1cfaadb29cab42bb951aca0d068f624cbf4ae68fe5117c8c133114a84b96fb6f)Execution payload header:
This caused the node to be unable to follow the canonical chain. The block was correctly imported after restarting besu and then teku.
Relevant teku logs:
Besu logs:
Initially Besu hit an error and correctly returned an error response (not invalid). Then Teku retried executing the block and got the incorrect
INVALID
response and from there it went off creating its own fork.The text was updated successfully, but these errors were encountered: