Skip to content

[SharovBot] Fix BAL divergence between proposer and validator causing glamsterdam block-proposal failure - #20686

Closed
erigon-copilot[bot] wants to merge 1 commit into
mainfrom
fix-glamsterdam-bal-divergence
Closed

erigon-copilot[bot] wants to merge 1 commit into
mainfrom
fix-glamsterdam-bal-divergence

Conversation

@erigon-copilot

Copy link
Copy Markdown
Contributor

Summary

  • Remove asymmetric versionedReads deletion in FinalizeTx that caused BAL hash divergence between serial proposer and parallel validator paths when transactions contained CREATE + SSTORE + SELFDESTRUCT patterns
  • Improve BAL mismatch diagnostics by logging full DebugString to stderr for kurtosis/docker log collection
  • Revert continue_on_error workaround for glamsterdam CI suite now that the root cause is fixed

Details

FinalizeTx (serial proposer path) deleted versionedReads for selfdestructed accounts, but the parallel executor (validator path) did not. When a tx contained CREATE + SSTORE + SELFDESTRUCT, the proposer's BAL omitted the storage read while the validator's BAL included it, causing a hash mismatch and INVALID payload status on ~20-40% of blocks under spamoor traffic.

Fix: remove the if so.deleted { delete(sdb.versionedReads, addr) } block from FinalizeTx. Both paths now retain versionedReads for destroyed accounts, matching EIP-7928 access-list semantics.

Test plan

🤖 Generated with Claude Code

… glamsterdam block-proposal failure

FinalizeTx (serial proposer path) deleted versionedReads for selfdestructed
accounts, but the parallel executor (validator path) did not. When a tx
contained CREATE + SSTORE + SELFDESTRUCT, the proposer's BAL omitted the
storage read while the validator's BAL included it, causing a hash mismatch
and INVALID payload status on ~20-40% of blocks under spamoor traffic.

Fix: remove the `if so.deleted { delete(sdb.versionedReads, addr) }` block
from FinalizeTx. Both paths now retain versionedReads for destroyed accounts,
matching EIP-7928 access-list semantics.

Also improve BAL mismatch diagnostics by logging the full DebugString to
stderr (captured by kurtosis/docker log collection) and revert the
continue-on-error workaround for the glamsterdam CI suite.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Co-authored-by: Giulio Rebuffo <giulio.rebuffo@gmail.com>
@yperbasis

Copy link
Copy Markdown
Member

Closing in favour of #20660

@yperbasis yperbasis closed this Apr 20, 2026
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.

2 participants