Skip to content

test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining#23414

Merged
spalladino merged 4 commits into
merge-train/spartanfrom
palla/pipelining-batch-3-v2
May 21, 2026
Merged

test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining#23414
spalladino merged 4 commits into
merge-train/spartanfrom
palla/pipelining-batch-3-v2

Conversation

@spalladino

@spalladino spalladino commented May 19, 2026

Copy link
Copy Markdown
Contributor

Migrates more e2e tests to pipelining

  • e2e_block_building: re-enables the nullifier-cleanup and reorg coverage under PIPELINING_SETUP_OPTS, avoids latest block races, and bounds proven-tip waits.
  • e2e_multi_validator_node: opts into PIPELINING_SETUP_OPTS, anchors PXE to the checkpointed chain, deploys accounts after epoch warps, removes unnecessary proving waits, and asserts attestations come from the checkpoint committee.
  • e2e_publisher_funding_multi: opts into PIPELINING_SETUP_OPTS and makes the second funding round deterministic by lowering a publisher balance after the first refill.
  • e2e_slashing/broadcasted_invalid_checkpoint_proposal_slash: removes the non-pipelined override and runs with pipelining plus inboxLag: 2.

Continues the pipelining e2e migration. Cherry-picks the actual test-side
adjustments from #23328 (which was a mess of unrelated changes) and skips
anything covered by #23327 or #23354.

- e2e_block_building "clears up all nullifiers if tx processing fails":
  un-skipped under fixed world-state fork-close. Promise.race -> Promise.any
  so we wait for the surviving tx (the failing one's rejection no longer
  settles the race first). Reads the block via getTxReceipt(minedTxHash)
  instead of getBlockData('latest') -- the latter can race against empty
  pipelined checkpoints.

- e2e_block_building > reorgs describe: un-skipped under the same fix.
  beforeEach now drives the proven tip with markAsProven() explicitly
  (AnvilTestWatcher.markAsProven is dormant under interval mining), and the
  open-ended while+sleep is bounded into a retryUntil. minTxsPerBlock: 1 keeps
  sequential block-number assertions tight under pipelining's empty-checkpoint
  cadence.

- e2e_multi_validator_node test 2: rewrote the over-pinned arrayContaining
  assertion to "no withdrawn validator attests" -- the test's actual
  motivation. Committee selection is RNG-sampled over the active set, so the
  original assertion pinned to a non-deterministic subset.
  jest.setTimeout(15min) added at the describe level so waitForProven has
  wall-clock budget.

- composed/ha/e2e_ha_full: replaced the strict
  `l1VoteCount === uniqueSlots.size` invariant (broken by design: HA dedup
  suppresses duplicate signatures, and the pipelined build-slot/target-slot
  offset means a vote signed in slot N mines in slot N+1) with an outcome
  assertion: poll until on-chain signal count for our payload >= 1, then
  assert payloadWithMostSignals matches, no (slot, validator) double-signs,
  every duty SIGNED. Pipelining opt-in held back behind a TODO.

- e2e_publisher_funding_multi: sharpened TODO documenting why pipelining
  opt-in is held back -- second funder round goes silent, needs source-level
  investigation of the RunningPromise cycle in publisher_manager.ts.
@spalladino spalladino changed the title test(e2e): batch 3 of pipelining e2e tests (clean redo of #23328) test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining May 21, 2026
@spalladino spalladino enabled auto-merge (squash) May 21, 2026 09:29
@AztecBot

Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/92a6d77ac063d6b6�92a6d77ac063d6b68;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_epochs/epochs_mbps.pipeline.parallel.test.ts "pipelining builds blocks using slot plus 1 proposer and proves them" (294s) (code: 0) group:e2e-p2p-epoch-flakes

@spalladino spalladino merged commit e011d80 into merge-train/spartan May 21, 2026
23 checks passed
@spalladino spalladino deleted the palla/pipelining-batch-3-v2 branch May 21, 2026 09:53
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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants