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

PersistFinalizationCertificate should increase to proper round #91

Open
samliok opened this issue Feb 19, 2025 · 1 comment
Open

PersistFinalizationCertificate should increase to proper round #91

samliok opened this issue Feb 19, 2025 · 1 comment
Labels
bug Something isn't working

Comments

@samliok
Copy link
Collaborator

samliok commented Feb 19, 2025

I believe we have a bug in this scenario

  1. All nodes start at round i.
  2. A couple consecutive empty rounds occur, say i + 5
  3. Some node n may still be at round i or a round less than i+5, in the case they were lagging or dropped emptyVote messages.
  4. All nodes receive a finalization for round i+6.
  5. The lagging node n will see that the finalization for round i+6 is the next sequence to commit. It will commit that fCert and increment the round by 1.

In this case, the lagging node should increment the round to i+6 rather than i+1. This will cause it to be out of sync when receiving proposals, votes, etc... for the subsequent rounds.

@samliok samliok added the bug Something isn't working label Feb 19, 2025
@yacovm
Copy link
Collaborator

yacovm commented Feb 26, 2025

The lagging node n will see that the finalization for round i+6 is the next sequence to commit. It will commit that fCert and increment the round by 1.

It shouldn't increment the round. We only increase the round because of an fCert once we also index a block to the storage.
So if the lagging node sees that round i+6 is the next sequence to commit, it must have committed all blocks prior.

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

2 participants