Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pivot chain reorg during catching up will violate the confirmed state assumption for archive nodes. #2108

Open
peilun-conflux opened this issue Mar 12, 2021 · 1 comment
Labels
bug Something isn't working

Comments

@peilun-conflux
Copy link
Contributor

Archive nodes will execute blocks normally in the phase CatchUpSyncBlock, and states (snapshots and MPTs) before a confirmed height will be deleted.
However, the confirmation probability is inaccurate during catching up because only a part of blocks are received, and violating this assumption is possible. This will result in a panic like
thread 'Consensus Worker' panicked at 'forked_at 5803248 should > boundary_lower_bound, boundary StateAvailabilityBoundary { synced_state_height: 0, lower_bound: 5806001, upper_bound: 5810510, optimistic_executed_height: Some(5810511) }', core/src/consensus/consensus_inner/consensus_new_block_handler.rs
where fork_at is before the state lower_bound.

@peilun-conflux peilun-conflux added the bug Something isn't working label Mar 12, 2021
@peilun-conflux
Copy link
Contributor Author

Since we have assumed that the checkpoint will not be reverted during catching-up, always keeping the states from the checkpoint to the tip should be enough?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant