Skip to content

test: flag e2e_multi_validator_node_key_store P2P tx-dropped failure as flake#23528

Merged
alexghr merged 1 commit into
merge-train/spartanfrom
cb/04678745050b
May 23, 2026
Merged

test: flag e2e_multi_validator_node_key_store P2P tx-dropped failure as flake#23528
alexghr merged 1 commit into
merge-train/spartanfrom
cb/04678745050b

Conversation

@AztecBot

Copy link
Copy Markdown
Collaborator

Summary

Add a .test_patterns.yml entry to flag the multi-validator web3signer suite as a flake when the first concurrently-submitted tx is dropped by the P2P layer before reaching a proposer. This is what dequeued PR #23344 from the merge queue at 2026-05-23T09:17 (run 26328618812).

Investigation

Jest output:

FAIL src/composed/web3signer/e2e_multi_validator_node_key_store.test.ts
  e2e_multi_validator_node
    ✕ should build blocks & attest with multiple validator keys (129296 ms)

  ● e2e_multi_validator_node › should build blocks & attest with multiple validator keys

    Transaction 0x26a078118c6ca2566de5b2405b745cc211dfd53a9bdcd478d068c2e13994a6a3 was dropped. Reason: Tx dropped by P2P node

      at async Promise.all (index 0)
      at Object.<anonymous> (composed/web3signer/e2e_multi_validator_node_key_store.test.ts:410:33)

Line 410 is inside the await Promise.all(sentTransactionPromises.map(async … => waitForTx(aztecNode, txHash))) block. The first of the concurrently-submitted txs never propagates and waitForTx resolves to a dropped receipt; this is a transient P2P-propagation flake under the proposer-pipelining migration in #23482.

Why a new entry?

There is no existing entry covering this suite. The unique error signature is Tx dropped by P2P node, which appears in the receipt's error field rendered by waitForTx.

Follow-up

Proper fix: investigate why the first tx is occasionally dropped before propagation completes (likely a race between mempool insertion and proposer pickup under pipelining). Same family as the other merge-train/spartan pipelining flakes; owner palla is the author of the pipelining migration (#23482, which also migrated this suite).

Test plan

  • error_regex: "Tx dropped by P2P node" matches the observed receipt error
  • CI continues to run src/composed/web3signer/e2e_multi_validator_node_key_store.test.ts; the P2P-drop failure now alerts palla on #aztec3-ci instead of failing the build

Created by claudebox · group: slackbot

@AztecBot AztecBot added the claudebox Owned by claudebox. it can push to this PR. label May 23, 2026
@alexghr alexghr marked this pull request as ready for review May 23, 2026 14:00
@alexghr alexghr enabled auto-merge (squash) May 23, 2026 14:00
@alexghr alexghr merged commit 735cfae into merge-train/spartan May 23, 2026
44 of 51 checks passed
@alexghr alexghr deleted the cb/04678745050b branch May 23, 2026 14:01
PhilWindle pushed a commit that referenced this pull request May 24, 2026
…rain/spartan (#23544)

## Summary

PR #23344 was dequeued again at
https://github.com/AztecProtocol/aztec-packages/actions/runs/26370196367.
The flake-flag added in #23528 (`error_regex: "Tx dropped by P2P node"`)
wasn't enough — ci3 retries once and the multi-validator web3signer
suite has now been seen failing in a second pipelining-related mode that
the regex doesn't match.

Both observed modes hit the same `should build blocks & attest with
multiple validator keys` case:

- `Tx dropped by P2P node` at `Promise.all` index 0 (the original mode,
ci.aztec-labs.com/9a5fa90aa18f62e7).
- Proposer misses the slot's 5-attestation deadline →
`AttestationTimeoutError: Timeout collecting attestations for slot 29:
0/5`, followed by `Simulation error: Block 0x… not found in the node.
This might indicate a reorg has occurred.`
(ci.aztec-labs.com/b91d3218b5e88ae4).

Following the same pattern as #23542 for `e2e_ha_full`: collapse the
existing error_regex entry into a single `skip: true` so the suite is
outright skipped on `merge-train/spartan` until proposer pipelining
stabilises.

## Notes

- Targets `merge-train/spartan` per yarn-project default base.
- Owner kept as @PaLLa (current owner of the entry from #23528).

Requested in Slack by @PhilWindle.

---
*Created by
[claudebox](https://claudebox.work/v2/sessions/dc484e7becc621c7) ·
group: `slackbot`*
danielntmd pushed a commit to danielntmd/aztec-packages that referenced this pull request Jun 4, 2026
BEGIN_COMMIT_OVERRIDE
refactor(p2p): merge FastTxCollection into TxCollection with sequential
pipeline (AztecProtocol#23245)
refactor(publisher): bundle-level simulate; drop per-action enqueue sims
(AztecProtocol#23165)
refactor(stdlib): remove deprecated RevertCode/TxExecutionResult aliases
(AztecProtocol#23249)
test(e2e): fix race in 'proposer invalidates multiple checkpoints'
(AztecProtocol#23259)
fix: clean up old jobs regardless of pending status (AztecProtocol#23260)
refactor(p2p): remove unused sendBatchRequest (AztecProtocol#23273)
chore(p2p): remove proposal_tx_collector leftovers (AztecProtocol#23276)
feat: slash truncated checkpoint proposals (AztecProtocol#23250)
refactor: remove unused map in attestation pool (AztecProtocol#23284)
chore(p2p): assert last block in checkpoint proposal is correct (AztecProtocol#23274)
refactor(l1-tx-utils): use DateProvider for fail-fast timeout check
(AztecProtocol#23257)
feat(sandbox): support proposer pipelining in local network (AztecProtocol#23277)
test(e2e): fix race in broadcasted_invalid_block_proposal_slash under
pipelining (AztecProtocol#23302)
fix(archiver): atomic getter for L2 tips (AztecProtocol#23295)
fix(sequencer): use targetSlot in tryVoteWhenEscapeHatchOpen under
pipelining (AztecProtocol#23296)
fix(world-state): make fork close idempotent for pruned forks (AztecProtocol#23298)
test(e2e): migrate passing tests to proposer pipelining (AztecProtocol#23275)
chore: update dashboard (AztecProtocol#23312)
chore: Revert "feat(sandbox): support proposer pipelining in local
network" (AztecProtocol#23313)
test: slash on bad attestation (AztecProtocol#23184)
feat(slasher): per-slot data-withholding watcher (A-523, A-525) (AztecProtocol#23116)
test(e2e): enable pipelining on e2e debug trace (AztecProtocol#23301)
test(e2e): enable pipelining on l1-to-l2 test (AztecProtocol#23300)
test(e2e): switch fee_settings to organic fee bumps under pipelining
(AztecProtocol#23303)
fix(ci): retry sqlite3mc-wasm download on transient DNS/TLS failures
(AztecProtocol#23333)
test(e2e): wait for real oracle rotation in fee_settings inflate helper
(AztecProtocol#23334)
test(e2e): anchor e2e_amm PXE to checkpointed tip under pipelining
(AztecProtocol#23336)
fix(spartan-bench): tolerate older node images in SlasherConfig schema
(AztecProtocol#23351)
fix: interrupt prover jobs in stop (AztecProtocol#23358)
test(e2e): enable pipelining on bot, fees, and avm simulator tests
(AztecProtocol#23329)
feat(sentinel): end-of-epoch evaluation with re-execution outcomes
(AztecProtocol#23286)
feat: slash for invalid checkpoint proposals (AztecProtocol#23270)
fix: fork closure in epoch proving jobs (AztecProtocol#23390)
fix(slasher): anchor watcher scans at archiver synced L2 slot (AztecProtocol#23394)
fix: avoid npm uplink for aztec-up local publishes (AztecProtocol#23396)
test(e2e): ignore benign 'Insufficient valid txs' block-build-failed in
epochs tests (AztecProtocol#23424)
chore: refactor weekly proving test wait (AztecProtocol#23395)
refactor: add fifo set (AztecProtocol#23271)
feat(sandbox): support proposer pipelining in local network (AztecProtocol#23327)
fix(p2p): validate BLOCK_TXS in BatchTxRequester (AztecProtocol#23371)
chore(p2p): simplify IBatchRequestTxValidator (AztecProtocol#23373)
feat(sequencer): AutomineSequencer for single-sequencer e2e tests
(AztecProtocol#23354)
fix(prover): wait for previous epoch to be proven (AztecProtocol#23458)
chore: collocate provers (AztecProtocol#23439)
chore: rm staging-ignition (AztecProtocol#23440)
chore: rm unused networks (AztecProtocol#23441)
test(e2e): migrate block_building, multi_validator_node,
publisher_funding, invalid_checkpoint_proposal to pipelining (AztecProtocol#23414)
fix(archiver): reconcile local blocks with L1 checkpoints by block
number (AztecProtocol#23461)
feat: Updated slash conditions on block proposals (AztecProtocol#23466)
test(e2e): migrate HA full test to pipelining (AztecProtocol#23463)
chore: update resource profiles (AztecProtocol#23442)
chore: update debug log levels (AztecProtocol#23456)
test: fix flaky sentinel_status_slash by asserting the fault on the
checkpoint slot (AztecProtocol#23483)
feat(slasher): slash checkpoint equivocation between P2P and L1 (A-980)
(AztecProtocol#23436)
refactor(slasher): rename ATTESTED_DESCENDANT_OF_INVALID ->
PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS (AztecProtocol#23468)
fix: reject block proposals in poisoned slots (AztecProtocol#23411)
fix: retry nargo dep + solc downloads to survive transient DNS drops
(AztecProtocol#23490)
fix: enrich json-rpc tracing (AztecProtocol#23412)
feat: add trace export controls (AztecProtocol#23413)
test(e2e): assert no equivocation offenses in HA full test (AztecProtocol#23496)
test: cover invalid checkpoint proposal slashing (AztecProtocol#23503)
test(e2e): migrate more e2e suites to proposer pipelining (AztecProtocol#23482)
test: flag e2e_slashing_attested_invalid_proposal as flake under
pipelining (AztecProtocol#23501)
test: flag e2e_p2p_duplicate_proposal_slash as flake under pipelining
(AztecProtocol#23515)
test(e2e): require cross-observer agreement on sentinel fault slot
(AztecProtocol#23513)
test: flag e2e_ha_full afterAll hook timeout as flake under pipelining
(AztecProtocol#23524)
fix(e2e): propagate l1ContractsArgs into node config so archiver matches
L1 (AztecProtocol#23514)
test: flag e2e_multi_validator_node_key_store P2P tx-dropped failure as
flake (AztecProtocol#23528)
test(cheat-codes): retry warpL2TimeAtLeastTo in-current-slot test on L1
race (AztecProtocol#23533)
test(e2e_ha_full): parallel HA peer node teardown with per-node deadline
(AztecProtocol#23539)
test: flag e2e_ha_full as flake under HA pipelining (AztecProtocol#23541)
test(ci): skip e2e_ha_full entirely on merge-train/spartan (AztecProtocol#23542)
test(ci): skip e2e_multi_validator_node_key_store entirely on
merge-train/spartan (AztecProtocol#23544)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-skip claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants