test: flag e2e_p2p_duplicate_proposal_slash as flake under pipelining#23515
Merged
Conversation
alexghr
approved these changes
May 22, 2026
This was referenced May 22, 2026
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.
Summary
Add
.test_patterns.ymlentry to flage2e_p2p/duplicate_proposal_slash > slashes validator who sends duplicate proposalsas a flake. Hit on http://ci.aztec-labs.com/930ddc9ede87059f and dequeued PR #23344 from the merge queue.This is the same race family as #23501 — under pipelining the slasher's offense recording loses to the test's wait timeout.
Investigation
Failure:
TimeoutError: Timeout awaiting duplicate proposal offenseatretryUntil(yarn-project/foundation/src/retry/index.ts:90) fromduplicate_proposal_slash.test.ts. The test triggers a duplicate checkpoint proposal fromvalidator-1, advances time, and polls the slasher for aDUPLICATE_PROPOSALoffense. The offense never appears within the wait window and the test exits withcode: 1after 226 s.Surrounding log signal: the run shows committee attestation collection timing out one slot earlier (
AttestationTimeoutError: Timeout collecting attestations for slot 14: 2/3) under pipelining, so the duplicate-proposal slot's gossip path is degraded around the same window the test is polling.Why a specific entry? The blanket
src/e2e_p2p/.*\.test\.tspattern withflake_group_id: e2e-p2p-epoch-flakesalready covers this file, but only up to the group threshold of 4. On this PR the threshold was already consumed by other p2p flakes (sentinel_status_slash.parallelwas FLAKED in the same run), so this failure escalated to FAILED and dequeued the merge train. Adding a specific entry witherror_regexlets this exact failure mode be tolerated independently of the group threshold, matching #23501's approach forattested_invalid_proposal.Follow-up
Proper source fix is on the slasher / p2p side, parallel to the work in
spl/fix-ha-full-equivocation-check: ensure the duplicate-proposal detector sees both gossip arrivals even when committee attestation collection for the same slot is stalling. This patch is the quick unblock.Test plan
TimeoutError: Timeout awaiting duplicate proposal offensefrom the failuree2e_p2p/duplicate_proposal_slash.test.ts; failures now alertpallaon#aztec3-ciinstead of failing the buildCreated by claudebox · group:
slackbot