You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking issue for parallel-exec test failures that were SkipLoad/t.Skip-gated (under EXEC3_PARALLEL=true only) so the serial-vs-parallel CI matrix (#21017 / mh/ci-exec-mode-matrix) can land green. Serial coverage of these is unaffected.
TestExecutionSpecBlockchain/cancun/eip6780_selfdestruct/test_dynamic_create2_selfdestruct_collision_two_different_transactions.json — wrong trie root at block 2; CREATE2 colliding with an address self-destructed in a prior tx. Same family.
TestExecutionSpecBlockchain/prague/eip7002_el_triggerable_withdrawals/test_system_contract_deployment.json and .../eip7251_consolidations/test_system_contract_deployment.json — only the fork_CancunToPragueAtTime15k-...-deploy_on_fork_block-{zero,nonzero}_balance variants; system-contract deployment on the fork-transition block diverges under parallel.
TestEIP7708BurnLogWhenCoinbaseSelfDestructs (execution/execmodule) — parallel finalize uses a minIBS that only carries coinbase/burnt via SetBalance, so it doesn't know the coinbase was self-destructed → no EIP-7708 Burn log. Needs an ExecutionResult.SelfDestructedAddresses field (regardless of balance) + LogSelfDestructedAccounts looking up the current balance for those.
Flaky under heavy parallel test load (not gated; pass on -count=3)
TestLongerForkHeaders, TestLongerForkBlocks, TestReorgShortBlocks (execution/tests), TestCustomTraceReceiptDomain (execution/stagedsync), TestSetHead (rpc/jsonrpc). The parallel reorg path has timing sensitivity — needs a hardening pass.
Architectural follow-up
These are all the same family — the post-execution wrapper re-derives "what did this tx do" (per-tx writeset via versionWritten→VersionedWrites filter→normalizeWriteSet→applyVersionedWrites; commitment-calc state via calcState.ApplyWrites; BAL recording) and diverges from what serial computes by observing the IBS directly. ~half of genuine parallel-executor PRs over the last 2 months are this family. Direction: extract the serial flow (MakeWriteSet etc.) to run post-validation as the single path (IBS becomes a pure per-tx transaction-state). Incremental first step: route the per-tx delta through versionedWriteCollector for all txs (today only the block-finalize IBS uses it), then have the commitment calc consume the same — collapsing normalizeWriteSet + calcState.ApplyWrites into pass-throughs and removing the SD/empty/recreate heuristics.
Tracking issue for parallel-exec test failures that were
SkipLoad/t.Skip-gated (underEXEC3_PARALLEL=trueonly) so the serial-vs-parallel CI matrix (#21017 /mh/ci-exec-mode-matrix) can land green. Serial coverage of these is unaffected.Skipped under parallel exec
TestExecutionSpecBlockchain/cancun/eip6780_selfdestruct/test_double_kill.json— wrong trie root at block 2. Block 1 deploys a self-destructing contract; block 2 tx0 CALLs it (SD), tx1 0-value-CALLs it. Serial re-creates it as an empty account ({0,0,empty,0}); under parallel the validated tx1's empty-account re-creation never reaches the apply/commitment path (writeset-reconstruction layer drops it). Same family as execution/stagedsync, db/state: parallel-commitment correctness for reorg/unwind + SD recreate #21088 / state, stagedsync: parallel-exec wrong-root fix for SD vs EIP-161 emptyRemoval #21032.TestExecutionSpecBlockchain/cancun/eip6780_selfdestruct/test_dynamic_create2_selfdestruct_collision_two_different_transactions.json— wrong trie root at block 2; CREATE2 colliding with an address self-destructed in a prior tx. Same family.TestExecutionSpecBlockchain/prague/eip7002_el_triggerable_withdrawals/test_system_contract_deployment.jsonand.../eip7251_consolidations/test_system_contract_deployment.json— only thefork_CancunToPragueAtTime15k-...-deploy_on_fork_block-{zero,nonzero}_balancevariants; system-contract deployment on the fork-transition block diverges under parallel.TestLegacyBlockchain/ValidBlocks/bcEIP3675/tipInsideBlock.json(Cancun + Prague) — parallel over-counts block gasUsed by ~4800; coinbase-touching txs (COINBASE/BALANCE/NUMBER/SSTORE).TestEIP7708BurnLogWhenCoinbaseSelfDestructs(execution/execmodule) — parallel finalize uses aminIBSthat only carries coinbase/burnt viaSetBalance, so it doesn't know the coinbase was self-destructed → no EIP-7708 Burn log. Needs anExecutionResult.SelfDestructedAddressesfield (regardless of balance) +LogSelfDestructedAccountslooking up the current balance for those.Flaky under heavy parallel test load (not gated; pass on
-count=3)TestLongerForkHeaders,TestLongerForkBlocks,TestReorgShortBlocks(execution/tests),TestCustomTraceReceiptDomain(execution/stagedsync),TestSetHead(rpc/jsonrpc). The parallel reorg path has timing sensitivity — needs a hardening pass.Architectural follow-up
These are all the same family — the post-execution wrapper re-derives "what did this tx do" (per-tx writeset via
versionWritten→VersionedWritesfilter→normalizeWriteSet→applyVersionedWrites; commitment-calc state viacalcState.ApplyWrites; BAL recording) and diverges from what serial computes by observing the IBS directly. ~half of genuine parallel-executor PRs over the last 2 months are this family. Direction: extract the serial flow (MakeWriteSetetc.) to run post-validation as the single path (IBS becomes a pure per-tx transaction-state). Incremental first step: route the per-tx delta throughversionedWriteCollectorfor all txs (today only the block-finalize IBS uses it), then have the commitment calc consume the same — collapsingnormalizeWriteSet+calcState.ApplyWritesinto pass-throughs and removing the SD/empty/recreate heuristics.