Skip to content

fix: restore configure-state-sync for S3 snapshot restores#72

Merged
bdchatham merged 1 commit intomainfrom
fix/restore-configure-state-sync-for-s3
Apr 10, 2026
Merged

fix: restore configure-state-sync for S3 snapshot restores#72
bdchatham merged 1 commit intomainfrom
fix/restore-configure-state-sync-for-s3

Conversation

@bdchatham
Copy link
Copy Markdown
Collaborator

Summary

Reverts the logic change from #62 that skipped configure-state-sync for S3 snapshot sources.

  • fix: skip configure-state-sync for S3 snapshot restores #62 assumed S3 snapshot-restore writes a complete data directory (app.db, blockstore, state), so configure-state-sync was unnecessary
  • In practice, the sidecar extracts ABCI snapshot chunks to data/snapshots/ — CometBFT needs statesync.enable=true with useLocalSnapshot to apply them
  • Without configure-state-sync, seid starts with an empty state DB, hits InitChain, and panics in DeliverGenTxs

What changed

  • Restore original guard (snap != nil) in both buildBasePlan and buildBootstrapProgression so configure-state-sync runs for S3 and StateSync sources
  • Update plan progression tests to expect configure-state-sync in S3 snapshot plans
  • Fix pacific-1-shadow-replayer canonicalRpc port typo (2665 → 26657)

Observed failure

pacific-1-shadow-replayer bootstrap pod panicked:

InitChain → InitGenesis → DeliverGenTxs → params/keeper.go:50 → panic

All sidecar tasks completed (snapshot-restore, genesis, config, peers, validate, mark-ready) but seid found LastBlockHeight=0 because the ABCI snapshot chunks were never applied.

Test plan

  • go test ./internal/... — all plan progression and integration tests pass
  • Deploy pacific-1-full-node sample with S3 snapshot (in progress — monitoring)
  • Redeploy pacific-1-shadow-replayer after controller image bump

🤖 Generated with Claude Code

Reverts the logic change from #62 that skipped configure-state-sync for
S3 snapshot sources. The original rationale assumed S3 snapshot-restore
writes a complete data directory, but the sidecar extracts ABCI snapshot
chunks to data/snapshots/. Without configure-state-sync (useLocalSnapshot:
true), CometBFT starts with statesync.enable=false, never applies the
snapshot, and panics at InitChain with an empty state DB.

Restores the original guard (`snap != nil`) so configure-state-sync runs
for both S3 and StateSync sources. Fixes the pacific-1-shadow-replayer
canonicalRpc port typo (2665 → 26657).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@bdchatham bdchatham marked this pull request as ready for review April 10, 2026 02:05
@bdchatham bdchatham merged commit 9f4b7b5 into main Apr 10, 2026
2 checks passed
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.

1 participant