Skip to content

fix(stages): skip sender unwind when fully pruned#21988

Merged
Rjected merged 1 commit intomainfrom
dan/skip-sender-unwind-pruned
Feb 9, 2026
Merged

fix(stages): skip sender unwind when fully pruned#21988
Rjected merged 1 commit intomainfrom
dan/skip-sender-unwind-pruned

Conversation

@Rjected
Copy link
Member

@Rjected Rjected commented Feb 9, 2026

This fixes a bug which caused

2026-02-09T16:04:18.921777Z  INFO Unwinding{stage=SenderRecovery}: Starting unwind from=24401553 to=24401550 bad_block=Some(24401553)
2026-02-09T16:04:18.922320Z  WARN Unwinding{stage=SenderRecovery}: Failed to load static file jar path="/home/ubuntu/rocksdb-minimal-snapshot/static_files/static_file_transaction-senders_24390000_24399999" e=No such file or directory (os error 2)
2026-02-09T16:04:18.922397Z ERROR backfill sync failed err=database integrity error occurred: failed to open file "/home/ubuntu/rocksdb-minimal-snapshot/static_files/static_file_transaction-senders_24390000_24399999.conf": No such file or directory (os error 2)
2026-02-09T16:04:18.922434Z ERROR Fatal error in consensus engine
2026-02-09T16:04:18.922490Z ERROR shutting down due to error

when unwinding on a --minimal node with no senders static files.

Previously, the SenderRecovery stage unwind unconditionally called EitherWriter::new_senders(), which tried to open a static file jar that doesn't exist when senders are fully pruned.

Now, the unwind path checks self.prune_mode and skips the unwind entirely when senders are fully pruned.

@github-project-automation github-project-automation bot moved this from Backlog to In Progress in Reth Tracker Feb 9, 2026
@Rjected Rjected enabled auto-merge February 9, 2026 16:52
@github-actions
Copy link
Contributor

github-actions bot commented Feb 9, 2026

⚠️ Changelog not found.

A changelog entry is required before merging. We've generated a suggested changelog based on your changes:

Preview
---
reth-stages: patch
---

Fixed sender recovery stage to skip unwind when senders are fully pruned.

Add changelog to commit this to your branch.

@Rjected Rjected added this pull request to the merge queue Feb 9, 2026
Merged via the queue into main with commit c558c1d Feb 9, 2026
44 of 81 checks passed
@Rjected Rjected deleted the dan/skip-sender-unwind-pruned branch February 9, 2026 17:50
@github-project-automation github-project-automation bot moved this from In Progress to Done in Reth Tracker Feb 9, 2026
CarlBeek added a commit to CarlBeek/reth that referenced this pull request Feb 10, 2026
* paradigmxyz/main: (144 commits)
  feat(engine): add getPayloadBodiesV2 endpoints for EIP-7928 BAL support (paradigmxyz#21774)
  ci: skip scheduled workflows on forks (paradigmxyz#22022)
  chore: rm random log file (paradigmxyz#22023)
  chore: remove base.reth.rs public endpoint references (paradigmxyz#22019)
  feat(rpc): add `subscribeFinalizedChainNotifications` endpoint (paradigmxyz#22011)
  feat(trie): remove `SerialSparseTrie` (paradigmxyz#21808)
  fix(rocksdb): set max_open_files to prevent fd exhaustion (paradigmxyz#22005)
  refactor(txpool): rename and document validation methods (paradigmxyz#22008)
  feat(engine): prefetch withdrawal addresses in pre-warming (paradigmxyz#21966)
  refactor(pool): add IntoIter: Send bounds to avoid unnecessary Vec collect (paradigmxyz#22001)
  fix(rpc): enforce blockHash constraint in append_matching_block_logs (paradigmxyz#22007)
  chore: move Kurtosis failures to the hive slack channel  (paradigmxyz#21983)
  feat(rpc): propagate TransactionOrigin through send_transaction and batcher (paradigmxyz#21969)
  feat(engine): reorg depth commitment metric (paradigmxyz#21992)
  feat(storage): add use_hashed_state storage setting (paradigmxyz#21997)
  perf: better scheduling for storage roots computation (paradigmxyz#21987)
  chore(deps): bump alloy 1.6.2 -> 1.6.3 (paradigmxyz#21986)
  fix(stages): skip sender unwind when fully pruned (paradigmxyz#21988)
  chore(net): remove OP stack bootnodes (paradigmxyz#21984)
  ci: use depot for hive and kurtosis image builds, run daily (paradigmxyz#21976)
  ...

# Conflicts:
#	.github/workflows/compact.yml
#	.github/workflows/dependencies.yml
#	.github/workflows/docker-tag-latest.yml
#	.github/workflows/docker.yml
#	.github/workflows/e2e.yml
#	.github/workflows/hive.yml
#	.github/workflows/integration.yml
#	.github/workflows/kurtosis.yml
#	.github/workflows/lint.yml
#	.github/workflows/release.yml
#	.github/workflows/reproducible-build.yml
#	.github/workflows/stale.yml
#	.github/workflows/sync-era.yml
#	.github/workflows/sync.yml
#	.github/workflows/unit.yml
#	bin/reth/Cargo.toml
#	crates/cli/commands/src/node.rs
#	crates/node/core/src/node_config.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants