Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 addresses six potential flakiness sources:
This currently never fails the buildkite. Also I tested it by using the net change in an unrelated PR where it passed in the first attempt.
Some notable function changes
allNodesHaveSameHead (node.go)
Rewritten to compare head block roots (not just epochs), wait for mid-epoch to avoid boundary races, check peer readiness, and require 2 consecutive matching samples. Retries on transient issues (different slots, low peers) with a 2-epoch timeout.
validatorsVoteWithTheMajority (operations.go)
Fixed voting period boundary detection: uses period number comparison (
currentPeriod != ec.ExpectedEth1DataVotePeriod) instead of exact slot divisibility (slot % 16 == 0). This prevents false failures when the first slot of a voting period has no block.validatorsSyncParticipation (validator.go)
Extended fork-transition slot skip from 2 to 3 slots for all fork epochs. Added bounded tolerance for blocks with zero sync committee bits which allows up to 2 such blocks before failing, to handle transient p2p issues without masking sustained failures.