Skip to content

Backport release/v6.7: Initialize app from last header when a frozen node restarts - #4507

Merged
alexander-sei merged 3 commits into
release/v6.7from
backport-4447-to-release/v6.7
Oct 12, 2026
Merged

alexander-sei merged 3 commits into
release/v6.7from
backport-4447-to-release/v6.7

Conversation

@seidroid

@seidroid seidroid Bot commented Oct 8, 2026

Copy link
Copy Markdown

Backport of #4447 to release/v6.7.

@seidroid seidroid Bot assigned masih Oct 8, 2026
@seidroid seidroid Bot added the backport label Oct 8, 2026
@seidroid

seidroid Bot commented Oct 8, 2026

Copy link
Copy Markdown
Author

Please cherry-pick the changes locally and resolve any conflicts.

git fetch origin backport-4447-to-release/v6.7
git worktree add --checkout .worktree/backport-4447-to-release/v6.7 backport-4447-to-release/v6.7
cd .worktree/backport-4447-to-release/v6.7
git reset --hard HEAD^
git cherry-pick -x d4853e532b878fe34033ff63495521c782baf0fb
git push --force-with-lease

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedOct 12, 2026, 3:33 PM

@masih masih added the on-hold Ticket is on hold label Oct 8, 2026
@codecov

codecov Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 60.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 60.80%. Comparing base (455235e) to head (43e3831).

Files with missing lines Patch % Lines
sei-tendermint/node/node.go 60.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@               Coverage Diff                @@
##           release/v6.7    #4507      +/-   ##
================================================
- Coverage         61.84%   60.80%   -1.04%     
================================================
  Files              2168     2068     -100     
  Lines            188739   176784   -11955     
================================================
- Hits             116724   107494    -9230     
+ Misses            61159    59406    -1753     
+ Partials          10856     9884     -972     
Flag Coverage Δ
sei-chain-pr 64.51% <60.00%> (?)
sei-db 69.80% <ø> (ø)
sei-db-state-db ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
sei-tendermint/node/node.go 66.52% <60.00%> (-0.07%) ⬇️

... and 100 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@alexander-sei
alexander-sei marked this pull request as ready for review October 9, 2026 12:41
@alexander-sei alexander-sei added non-app-hash-breaking and removed on-hold Ticket is on hold labels Oct 9, 2026
@cursor

cursor Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

PR Summary

Medium Risk
Touches node startup and app initialization for freeze-mode operators; behavior is narrow (only when freezeHeight > 0 and chain state exists) but affects RPC availability after restarts.

Overview
Frozen nodes now re-initialize the application from the last persisted block header on startup, so query paths (including EVM RPC) work after restart even though no new blocks are committed.

In node.OnStart, after the handshake reloads state, freeze mode calls App.InitLastHeader with the header from blockStore at state.LastBlockHeight, and fails startup if that block meta is missing.

Coverage adds a unit test that asserts the header passed to InitLastHeader matches the block store, and a Docker integration test that restarts seid in a frozen container and checks eth_getBlockByNumber still succeeds at the frozen height.

Reviewed by Cursor Bugbot for commit 43e3831. Bugbot is set up for automated code reviews on this repo. Configure here.

@seidroid seidroid Bot left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The node.go change backports cleanly. However, sei-tendermint/node/freeze_test.go was committed with unresolved merge-conflict markers, so the node test package won't compile.

Findings: 1 blocking | 0 non-blocking | 1 posted inline

Blockers

  • None at the file/PR level.
  • 1 blocking issue(s) flagged inline on specific lines.

Non-blocking

  • None at the file/PR level.

Inline comments (could not post inline; listed here)

  • sei-tendermint/node/freeze_test.go:15 (RIGHT) -- [blocker] The import block still has merge-conflict markers (<<<<<<< HEAD / ======= / >>>>>>>), so the file won't parse. That breaks compilation of the whole sei-tendermint/node test package and blocks CI. Resolve it by keeping both sides: the existing test still uses tcp.TestReserveAddr() (line 89), and the new test needs libs/utils, libs/utils/require and tmproto. Then run gofmt and goimports on the file.

alexander-sei and others added 2 commits October 12, 2026 17:28
release/v6.7 still uses libs/utils/tcp in
TestFreezeModeDisablesMempoolTraffic, so keep that import alongside
the ones the backported restart test adds.

Co-authored-by: Cursor <cursoragent@cursor.com>
@alexander-sei
alexander-sei merged commit 210b31b into release/v6.7 Oct 12, 2026
74 checks passed
@alexander-sei
alexander-sei deleted the backport-4447-to-release/v6.7 branch October 12, 2026 15:58
masih pushed a commit that referenced this pull request Oct 16, 2026
Systematic changelog re-generation for the v6.7.2 patch release.

Adds the PRs merged to `release/v6.7` since the v6.7.1 changelog
(#4481), as reported by `scripts/generate-changelog.sh release/v6.6
release/v6.7`.

New in v6.7.2:
- #4520 Backport `release/v6.7`: Export known peer address count as a
Prometheus gauge
- #4515 Backport `release/v6.7`: Count only connected peers in /net_info
n_peers
- #4508 Backport `release/v6.7`: Fix pruning issue in SS causing huge
disk spike
- #4507 Backport `release/v6.7`: Initialize app from last header when a
frozen node restarts

Shipped in v6.7.1, but merged after #4481 was generated, so the v6.7.1
changelog never listed them:
- #4503 Backport `release/v6.7`: Refuse pinned write modes that disagree
with persisted migration
- #4502 Backport `release/v6.7`: Guard FlatKV rollback floor
- #4499 Backport `release/v6.7`: Resolve composite iteration duplicates
to memiavl, matching Read
- #4489 Backport `release/v6.7`: Remove genesis export
- #4486 Backport `release/v6.7`: Re-derive the composite write mode on
rollback
- #4485 Backport `release/v6.7`: Make the composite store flatKV and
write mode atomic
- #4474 Backport `release/v6.7`: Validate module names in the memiavl
snapshot importer

v6.7.1 release bookkeeping:
- #4506 Backport `release/v6.7`: Update v6.7 change log in prep to cut
v6.7.1 patch
- #4482 Bump version to v6.7.1 in prep for patch release

Only the `## v6.7` PR list changes, so the `backport release/v6.7`
cherry-pick applies cleanly (simulated with `git merge-tree` against
`origin/release/v6.7`).

Co-authored-by: Cursor <cursoragent@cursor.com>
masih added a commit that referenced this pull request Oct 16, 2026
## Summary
- Bump `version.json` from `v6.7.1` to `v6.7.2` for the patch release.
- Merge after the `release/v6.7` backport of #4557 (the v6.7.2
changelog), so the release includes it.
- New since v6.7.1: #4507, #4508, #4515 and #4520. All four are labeled
`non-app-hash-breaking`, so moving from v6.7.1 to v6.7.2 should not need
a coordinated validator switch.
- Push `v6.7.2` by hand on this PR's merge commit once it has merged;
the tagging ruleset stops `uci-release-publish` from creating it.

## Test plan
- [x] `git diff --check`

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Masih H. Derkani <m@derkani.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants