Skip to content

fix(driver): decide in a future round upon PrecommitValue(v) vote keeper output#1483

Open
cason wants to merge 11 commits intocirclefin:mainfrom
cason:commit-future-round-3
Open

fix(driver): decide in a future round upon PrecommitValue(v) vote keeper output#1483
cason wants to merge 11 commits intocirclefin:mainfrom
cason:commit-future-round-3

Conversation

@cason
Copy link
Contributor

@cason cason commented Feb 17, 2026

Closes: #1480.

In the following scenario the vote keeper can produce both SkipRound(r)and PrecommitValue(v):

  1. The process receives Precommit(r, v);
  2. r is larger than the current's process round;
  3. votes from round r were received from 1/3+ processes;
  4. and Precommit(r, v) was received from 2/3+ processes.

The current implementation of the vote keeper opts to output SkipRound(r) in this scenario, therefore postponing the decision, which depends on the reception of an additional event at round r. This is problematic for two reasons:

  1. The application is supposed to report again ProposedValue(v, validity) when starting round r;
  2. If a Commit certificate for (r, v) is received, instead of a Precommit leading to a quorum, the decision is immediate.

This PR changes the behaviour of the vote keeper to produced a PrecommitValue(v) in this scenario. In order to cover the scenarios when PrecommitValue(r, v) does not lead to a decision - namely, when Proposal(v, r) is not available or v is invalid - a fall back mechanism is added to the driver to apply SkipRound(r) to the state machine instead.

@cason cason requested review from nenadmilosevic95 and removed request for ancazamfir and romac February 17, 2026 09:52
@github-actions github-actions bot added the need-triage This issue needs to be triaged label Feb 17, 2026
@cason cason requested review from ancazamfir and romac and removed request for romac February 17, 2026 09:52
@github-actions github-actions bot closed this Feb 17, 2026
@cason cason requested a review from romac February 17, 2026 09:52
@cason cason reopened this Feb 17, 2026
@romac romac removed the need-triage This issue needs to be triaged label Feb 17, 2026
@github-actions github-actions bot added the need-triage This issue needs to be triaged label Feb 17, 2026
@github-actions github-actions bot closed this Feb 17, 2026
@romac romac reopened this Feb 17, 2026
@github-actions github-actions bot closed this Feb 17, 2026
@circlefin circlefin deleted a comment from github-actions bot Feb 17, 2026
@circlefin circlefin deleted a comment from github-actions bot Feb 17, 2026
@circlefin circlefin deleted a comment from github-actions bot Feb 17, 2026
@romac romac reopened this Feb 17, 2026
@romac romac removed the need-triage This issue needs to be triaged label Feb 17, 2026
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.

core: different behaviour upon PrecommitValue(v) and Commit certificate for a future round

2 participants